././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5559611 pyfuse3-3.3.0/0000775000175000017500000000000014463757517011046 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344073.0 pyfuse3-3.3.0/Changes.rst0000664000175000017500000000771614463756311013152 0ustar00twtw=========== Changelog =========== .. currentmodule:: pyfuse3 Release 3.3.0 (2023-08-06) ========================== * Note: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported. * Cythonized with latest Cython 3.0.0. * Drop Python 3.6 and 3.7 support and testing, #71. * CI: also test python 3.12. test on cython 0.29 and cython 3.0. * Tell Cython that callbacks may raise exceptions, #80. * Fix lookup in examples/hello.py, similar to #16. * Misc. CI, testing, build and sphinx related fixes. Release 3.2.3 (2023-05-09) ========================== * cythonize with latest Cython 0.29.34 (brings Python 3.12 support) * add a minimal pyproject.toml, require setuptools * tests: fix integer overflow on 32-bit arches, fixes #47 * test: Use shutil.which() instead of external which(1) program * setup.py: catch more generic OSError when searching Cython, fixes #63 * setup.py: require Cython >= 0.29 * fix basedir computation in setup.py (fix pip install -e .) * use sphinx < 6.0 due to compatibility issues with more recent versions Release 3.2.2 (2022-09-28) ========================== * remove support for python 3.5 (broken, out of support by python devs) * cythonize with latest Cython 0.29.x (brings Python 3.11 support) * use github actions for CI, remove travis-ci * update README: minimal maintenance, not developed * update setup.py with tested python versions * examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing. Release 3.2.1 (2021-09-17) ========================== * Add type annotations * Passing a XATTR_CREATE or XATTR_REPLACE to setxattr() is now working correctly. Release 3.2.0 (2020-12-30) ========================== * Fix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500. * There is a new `pyfuse3.terminate()` function to gracefully end the main loop. Release 3.1.1 (2020-10-06) ========================== * No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility. Release 3.1.0 (2020-05-31) ========================== * Made compatible with newest Trio module. Release 3.0.0 (2020-05-08) ========================== * Changed `create` handler to return a `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. Release 2.0.0 ============= * Changed `open` handler to return the new `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. Release 1.3.1 (2019-07-17) ========================== * Fixed a bug in the :file:`hello_asyncio.py` example. Release 1.3 (2019-06-02) ======================== * Fixed a bug in the :file:`tmpfs.py` and :file:`passthroughfs.py` example file systems (so rename operations no longer fail). Release 1.2 (2018-12-22) ======================== * Clarified that `invalidate_inode` may block in some circumstances. * Added support for using the asyncio module instead of Trio. Release 1.1 (2018-11-02) ======================== * Fixed :file:`examples/passthroughfs.py` - was not handling readdir() correctly. * `invalidate_entry_async` now accepts an additional *ignore_enoent* parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed. Release 1.0 (2018-10-08) ======================== * Added a new `syncfs` function. Release 0.9 (2018-09-27) ======================== * First release * pyfuse3 was forked from python-llfuse - thanks for all the work! * If you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5399609 pyfuse3-3.3.0/Include/0000775000175000017500000000000014463757517012431 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/Include/fuse_common.pxd0000664000175000017500000000516414461445163015453 0ustar00twtw''' fuse_common.pxd This file contains Cython definitions for fuse_common.h Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from fuse_opt cimport * from posix.types cimport off_t from libc.stdint cimport uint64_t # Based on fuse sources, revision tag fuse_2_9_4 cdef extern from * nogil: # fuse_common.h should not be included struct fuse_file_info: int flags unsigned int direct_io unsigned int keep_cache unsigned int nonseekable uint64_t fh uint64_t lock_owner struct fuse_conn_info: unsigned proto_major unsigned proto_minor unsigned max_write unsigned max_read unsigned max_readahead unsigned capable unsigned want unsigned max_background unsigned congestion_threshold unsigned time_gran struct fuse_session: pass struct fuse_chan: pass struct fuse_loop_config: int clone_fd unsigned max_idle_threads # Capability bits for fuse_conn_info.{capable,want} enum: FUSE_CAP_ASYNC_READ FUSE_CAP_POSIX_LOCKS FUSE_CAP_ATOMIC_O_TRUNC FUSE_CAP_EXPORT_SUPPORT FUSE_CAP_DONT_MASK FUSE_CAP_SPLICE_WRITE FUSE_CAP_SPLICE_MOVE FUSE_CAP_SPLICE_READ FUSE_CAP_FLOCK_LOCKS FUSE_CAP_IOCTL_DIR FUSE_CAP_AUTO_INVAL_DATA FUSE_CAP_READDIRPLUS FUSE_CAP_READDIRPLUS_AUTO FUSE_CAP_ASYNC_DIO FUSE_CAP_WRITEBACK_CACHE FUSE_CAP_NO_OPEN_SUPPORT FUSE_CAP_PARALLEL_DIROPS FUSE_CAP_POSIX_ACL FUSE_CAP_HANDLE_KILLPRIV int fuse_set_signal_handlers(fuse_session *se) void fuse_remove_signal_handlers(fuse_session *se) # fuse_common.h declares these as enums, but they are # actually flags (i.e., FUSE_BUF_IS_FD|FUSE_BUF_FD_SEEK) # is a valid variable. Therefore, we declare the type # as integer instead. ctypedef int fuse_buf_flags enum: FUSE_BUF_IS_FD FUSE_BUF_FD_SEEK FUSE_BUF_FD_RETRY ctypedef int fuse_buf_copy_flags enum: FUSE_BUF_NO_SPLICE FUSE_BUF_FORCE_SPLICE FUSE_BUF_SPLICE_MOVE FUSE_BUF_SPLICE_NONBLOCK struct fuse_buf: size_t size fuse_buf_flags flags void *mem int fd off_t pos struct fuse_bufvec: size_t count size_t idx size_t off fuse_buf buf[1] size_t fuse_buf_size(fuse_bufvec *bufv) ssize_t fuse_buf_copy(fuse_bufvec *dst, fuse_bufvec *src, fuse_buf_copy_flags flags) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344016.0 pyfuse3-3.3.0/Include/fuse_lowlevel.pxd0000664000175000017500000002107114463756220016010 0ustar00twtw''' fuse_lowlevel.pxd This file contains Cython definitions for fuse_lowlevel.h Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from fuse_common cimport * from posix.stat cimport * from posix.types cimport * from libc_extra cimport statvfs from libc.stdlib cimport const_char from libc.stdint cimport uint32_t # Based on fuse sources, revision tag fuse-3.2.6 cdef extern from "" nogil: enum: FUSE_ROOT_ID ctypedef unsigned fuse_ino_t ctypedef struct fuse_req: pass ctypedef fuse_req* fuse_req_t struct fuse_entry_param: fuse_ino_t ino uint64_t generation struct_stat attr double attr_timeout double entry_timeout struct fuse_ctx: uid_t uid gid_t gid pid_t pid mode_t umask struct fuse_forget_data: fuse_ino_t ino uint64_t nlookup ctypedef fuse_ctx const_fuse_ctx "const struct fuse_ctx" int FUSE_SET_ATTR_MODE int FUSE_SET_ATTR_UID int FUSE_SET_ATTR_GID int FUSE_SET_ATTR_SIZE int FUSE_SET_ATTR_ATIME int FUSE_SET_ATTR_MTIME int FUSE_SET_ATTR_ATIME_NOW int FUSE_SET_ATTR_MTIME_NOW int FUSE_SET_ATTR_CTIME # Request handlers # We allow these functions to raise exceptions because we will catch them # when checking exception status on return from fuse_session_process_buf(). struct fuse_lowlevel_ops: void (*init) (void *userdata, fuse_conn_info *conn) except * void (*destroy) (void *userdata) except * void (*lookup) (fuse_req_t req, fuse_ino_t parent, const_char *name) except * void (*forget) (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup) except * void (*getattr) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*setattr) (fuse_req_t req, fuse_ino_t ino, struct_stat *attr, int to_set, fuse_file_info *fi) except * void (*readlink) (fuse_req_t req, fuse_ino_t ino) except * void (*mknod) (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, dev_t rdev) except * void (*mkdir) (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode) except * void (*unlink) (fuse_req_t req, fuse_ino_t parent, const_char *name) except * void (*rmdir) (fuse_req_t req, fuse_ino_t parent, const_char *name) except * void (*symlink) (fuse_req_t req, const_char *link, fuse_ino_t parent, const_char *name) except * void (*rename) (fuse_req_t req, fuse_ino_t parent, const_char *name, fuse_ino_t newparent, const_char *newname, unsigned flags) except * void (*link) (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, const_char *newname) except * void (*open) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi) except * void (*write) (fuse_req_t req, fuse_ino_t ino, const_char *buf, size_t size, off_t off, fuse_file_info *fi) except * void (*flush) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*release) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*fsync) (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi) except * void (*opendir) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*readdir) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi) except * void (*releasedir) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*fsyncdir) (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi) except * void (*statfs) (fuse_req_t req, fuse_ino_t ino) except * void (*setxattr) (fuse_req_t req, fuse_ino_t ino, const_char *name, const_char *value, size_t size, int flags) except * void (*getxattr) (fuse_req_t req, fuse_ino_t ino, const_char *name, size_t size) except * void (*listxattr) (fuse_req_t req, fuse_ino_t ino, size_t size) except * void (*removexattr) (fuse_req_t req, fuse_ino_t ino, const_char *name) except * void (*access) (fuse_req_t req, fuse_ino_t ino, int mask) except * void (*create) (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, fuse_file_info *fi) except * void (*write_buf) (fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, off_t off, fuse_file_info *fi) except * void (*retrieve_reply) (fuse_req_t req, void *cookie, fuse_ino_t ino, off_t offset, fuse_bufvec *bufv) except * void (*forget_multi) (fuse_req_t req, size_t count, fuse_forget_data *forgets) except * void (*fallocate) (fuse_req_t req, fuse_ino_t ino, int mode, off_t offset, off_t length, fuse_file_info *fi) except * void (*readdirplus) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi) except * # Reply functions int fuse_reply_err(fuse_req_t req, int err) void fuse_reply_none(fuse_req_t req) int fuse_reply_entry(fuse_req_t req, fuse_entry_param *e) int fuse_reply_create(fuse_req_t req, fuse_entry_param *e, fuse_file_info *fi) int fuse_reply_attr(fuse_req_t req, struct_stat *attr, double attr_timeout) int fuse_reply_readlink(fuse_req_t req, const_char *link) int fuse_reply_open(fuse_req_t req, fuse_file_info *fi) int fuse_reply_write(fuse_req_t req, size_t count) int fuse_reply_buf(fuse_req_t req, const_char *buf, size_t size) int fuse_reply_data(fuse_req_t req, fuse_bufvec *bufv, fuse_buf_copy_flags flags) int fuse_reply_statfs(fuse_req_t req, statvfs *stbuf) int fuse_reply_xattr(fuse_req_t req, size_t count) size_t fuse_add_direntry(fuse_req_t req, const_char *buf, size_t bufsize, const_char *name, struct_stat *stbuf, off_t off) size_t fuse_add_direntry_plus(fuse_req_t req, char *buf, size_t bufsize, char *name, fuse_entry_param *e, off_t off) # Notification int fuse_lowlevel_notify_inval_inode(fuse_session *se, fuse_ino_t ino, off_t off, off_t len) int fuse_lowlevel_notify_inval_entry(fuse_session *se, fuse_ino_t parent, const_char *name, size_t namelen) int fuse_lowlevel_notify_delete(fuse_session *se, fuse_ino_t parent, fuse_ino_t child, const_char *name, size_t namelen) int fuse_lowlevel_notify_store(fuse_session *se, fuse_ino_t ino, off_t offset, fuse_bufvec *bufv, fuse_buf_copy_flags flags) int fuse_lowlevel_notify_retrieve(fuse_session *se, fuse_ino_t ino, size_t size, off_t offset, void *cookie) # Utility functions void *fuse_req_userdata(fuse_req_t req) fuse_ctx *fuse_req_ctx(fuse_req_t req) int fuse_req_getgroups(fuse_req_t req, size_t size, gid_t list[]) # Inquiry functions void fuse_lowlevel_version() void fuse_lowlevel_help() # Filesystem setup & teardown fuse_session *fuse_session_new(fuse_args *args, fuse_lowlevel_ops *op, size_t op_size, void *userdata) int fuse_session_mount(fuse_session *se, char *mountpoint) int fuse_session_loop(fuse_session *se) int fuse_session_loop_mt(fuse_session *se, fuse_loop_config *config); void fuse_session_exit(fuse_session *se) void fuse_session_reset(fuse_session *se) bint fuse_session_exited(fuse_session *se) void fuse_session_unmount(fuse_session *se) void fuse_session_destroy(fuse_session *se) # Custom event loop support int fuse_session_fd(fuse_session *se) int fuse_session_receive_buf(fuse_session *se, fuse_buf *buf) void fuse_session_process_buf(fuse_session *se, fuse_buf *buf) except * ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/Include/fuse_opt.pxd0000664000175000017500000000060314461445163014756 0ustar00twtw''' fuse_opt.pxd This file contains Cython definitions for fuse_opt.h Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' # Based on fuse sources, revision tag fuse_2_8_3 cdef extern from "" nogil: struct fuse_args: int argc char **argv int allocated ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/Include/libc_extra.pxd0000664000175000017500000000310314461445163015244 0ustar00twtw''' libc_extra.pxd This file contains Cython definitions libc functions that are not included in the pxd files shipped with Cython. Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from posix.time cimport timespec cdef extern from "" nogil: ctypedef struct DIR: pass cdef struct dirent: char* d_name dirent* readdir(DIR* dirp) int readdir_r(DIR *dirp, dirent *entry, dirent **result) cdef extern from "" nogil: DIR *opendir(char *name) int closedir(DIR* dirp) cdef extern from "" nogil: ctypedef int fsblkcnt_t ctypedef int fsfilcnt_t struct statvfs: unsigned long f_bsize unsigned long f_frsize fsblkcnt_t f_blocks fsblkcnt_t f_bfree fsblkcnt_t f_bavail fsfilcnt_t f_files fsfilcnt_t f_ffree fsfilcnt_t f_favail unsigned long f_namemax cdef extern from "xattr.h" nogil: int setxattr_p (char *path, char *name, void *value, int size, int namespace) ssize_t getxattr_p (char *path, char *name, void *value, int size, int namespace) enum: EXTATTR_NAMESPACE_SYSTEM EXTATTR_NAMESPACE_USER XATTR_CREATE XATTR_REPLACE XATTR_NOFOLLOW XATTR_NODEFAULT XATTR_NOSECURITY cdef extern from "gettime.h" nogil: int gettime_realtime(timespec *tp) cdef extern from "" nogil: int syncfs(int fd) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/LICENSE0000664000175000017500000006255014461445163012050 0ustar00twtwThis program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. For reference, the full text of the GNU Lesser General Public License Version 2 is included below: GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5559611 pyfuse3-3.3.0/PKG-INFO0000664000175000017500000000570614463757517012153 0ustar00twtwMetadata-Version: 2.1 Name: pyfuse3 Version: 3.3.0 Summary: Python 3 bindings for libfuse 3 with async I/O support Home-page: https://github.com/libfuse/pyfuse3 Author: Nikolaus Rath Author-email: Nikolaus@rath.org License: LGPL Keywords: FUSE,python Platform: Linux Platform: FreeBSD Platform: OS X Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Filesystems Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) Classifier: Operating System :: POSIX :: Linux Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: POSIX :: BSD :: FreeBSD Classifier: Typing :: Typed Provides: pyfuse3 Requires-Python: >=3.8 License-File: LICENSE .. NOTE: We cannot use sophisticated ReST syntax (like e.g. :file:`foo`) here because this isn't rendered correctly by PyPi and/or BitBucket. Warning - no longer developed! ============================== pyfuse3 is no longer actively developed and just receiving community-contributed maintenance to keep it alive for some time. The pyfuse3 Module ================== .. start-intro pyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python. pyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball. Getting Help ------------ Please report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_. A searchable `mailing list archive`_ is kindly provided by Gmane_. Development Status ------------------ pyfuse3 is in beta. Bugs are likely. pyfuse3 uses semantic versioning. This means backwards incompatible changes in the API will be reflected in an increase of the major version number. Contributing ------------ The pyfuse3 source code is available on GitHub_. .. __: http://www.rath.org/pyfuse3-docs/ .. _libfuse 3: http://github.com/libfuse/libfuse .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _issue tracker: https://github.com/libfuse/pyfuse3/issues .. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.devel .. _Gmane: http://www.gmane.org/ .. _PyPi: https://pypi.python.org/pypi/pyfuse3/ .. _GitHub: https://github.com/libfuse/pyfuse3 .. _Trio: https://github.com/python-trio/trio .. _asyncio: https://docs.python.org/3/library/asyncio.html ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/README.rst0000664000175000017500000000345014461445163012524 0ustar00twtw.. NOTE: We cannot use sophisticated ReST syntax (like e.g. :file:`foo`) here because this isn't rendered correctly by PyPi and/or BitBucket. Warning - no longer developed! ============================== pyfuse3 is no longer actively developed and just receiving community-contributed maintenance to keep it alive for some time. The pyfuse3 Module ================== .. start-intro pyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python. pyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball. Getting Help ------------ Please report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_. A searchable `mailing list archive`_ is kindly provided by Gmane_. Development Status ------------------ pyfuse3 is in beta. Bugs are likely. pyfuse3 uses semantic versioning. This means backwards incompatible changes in the API will be reflected in an increase of the major version number. Contributing ------------ The pyfuse3 source code is available on GitHub_. .. __: http://www.rath.org/pyfuse3-docs/ .. _libfuse 3: http://github.com/libfuse/libfuse .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _issue tracker: https://github.com/libfuse/pyfuse3/issues .. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.devel .. _Gmane: http://www.gmane.org/ .. _PyPi: https://pypi.python.org/pypi/pyfuse3/ .. _GitHub: https://github.com/libfuse/pyfuse3 .. _Trio: https://github.com/python-trio/trio .. _asyncio: https://docs.python.org/3/library/asyncio.html ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1691344718.535961 pyfuse3-3.3.0/doc/0000775000175000017500000000000014463757517011613 5ustar00twtw././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5399609 pyfuse3-3.3.0/doc/html/0000775000175000017500000000000014463757517012557 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/.buildinfo0000664000175000017500000000034614463757445014536 0ustar00twtw# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: bed2ef25f23025136a5bb2879a74e132 tags: 645f666f9bcd5a90fca523b33c5a78b7 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5439608 pyfuse3-3.3.0/doc/html/.doctrees/0000775000175000017500000000000014463757517014445 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/about.doctree0000664000175000017500000002234614463757444017134 0ustar00twtw$sphinx.addnodesdocument)}( rawsourcechildren]docutils.nodessection)}(hhh](h title)}(hAbouth]h TextAbout}(parenth _documenthsourceNlineNuba attributes}(ids]classes]names]dupnames]backrefs]utagnamehhh hhh /home/tw/w/pyfuse3/rst/about.rsthKubh paragraph)}(hpyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python.h](h*pyfuse3 is a set of Python 3 bindings for }(hh/hhhNhNubh reference)}(h `libfuse 3`_h]h libfuse 3}(hh9hhhNhNubah}(h!]h#]h%]h']h)]name libfuse 3refuri!http://github.com/libfuse/libfuseuh+h7hh/resolvedKubh2. It provides an asynchronous API compatible with }(hh/hhhNhNubh8)}(hTrio_h]hTrio}(hhPhhhNhNubah}(h!]h#]h%]h']h)]nameTriohI#https://github.com/python-trio/triouh+h7hh/hKKubh and }(hh/hhhNhNubh8)}(hasyncio_h]hasyncio}(hhehhhNhNubah}(h!]h#]h%]h']h)]nameasynciohI.https://docs.python.org/3/library/asyncio.htmluh+h7hh/hKKubhM, and enables you to easily write a full-featured Linux filesystem in Python.}(hh/hhhNhNubeh}(h!]h#]h%]h']h)]uh+h-h README.rsthKhh hhubh.)}(hpyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball.h](h(pyfuse3 releases can be downloaded from }(hhhhhNhNubh8)}(hPyPi_h]hPyPi}(hhhhhNhNubah}(h!]h#]h%]h']h)]namePyPihI%https://pypi.python.org/pypi/pyfuse3/uh+h7hhhKKubh. The documentation can be }(hhhhhNhNubh8)}(h`read online`__h]h read online}(hhhhhNhNubah}(h!]h#]h%]h']h)]name read online anonymousKhI!http://www.rath.org/pyfuse3-docs/uh+h7hhhKKubh and is also included in the }(hhhhhNhNubh literal)}(h ``doc/html``h]hdoc/html}(hhhhhNhNubah}(h!]h#]h%]h']h)]uh+hhhubh" directory of the pyfuse3 tarball.}(hhhhhNhNubeh}(h!]h#]h%]h']h)]uh+h-hhhKhh hhubh )}(hhh](h)}(h Getting Helph]h Getting Help}(hhhhhNhNubah}(h!]h#]h%]h']h)]uh+hhhhhhhhK ubh.)}(hPlease report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_. A searchable `mailing list archive`_ is kindly provided by Gmane_.h](hPlease report any bugs on the }(hhhhhNhNubh8)}(h`issue tracker`_h]h issue tracker}(hhhhhNhNubah}(h!]h#]h%]h']h)]name issue trackerhI)https://github.com/libfuse/pyfuse3/issuesuh+h7hhhKKubh7. For discussion and questions, please use the general }(hhhhhNhNubh8)}(h`FUSE mailing list`_h]hFUSE mailing list}(hhhhhNhNubah}(h!]h#]h%]h']h)]nameFUSE mailing listhI7https://lists.sourceforge.net/lists/listinfo/fuse-develuh+h7hhhKKubh. A searchable }(hhhhhNhNubh8)}(h`mailing list archive`_h]hmailing list archive}(hjhhhNhNubah}(h!]h#]h%]h']h)]namemailing list archivehI7http://dir.gmane.org/gmane.comp.file-systems.fuse.develuh+h7hhhKKubh is kindly provided by }(hhhhhNhNubh8)}(hGmane_h]hGmane}(hj&hhhNhNubah}(h!]h#]h%]h']h)]nameGmanehIhttp://www.gmane.org/uh+h7hhhKKubh.}(hhhhhNhNubeh}(h!]h#]h%]h']h)]uh+h-hhhKhhhhubeh}(h!] getting-helpah#]h%] getting helpah']h)]uh+h hh hhhhhK ubh )}(hhh](h)}(hDevelopment Statush]hDevelopment Status}(hjLhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjIhhhhhKubh.)}(h$pyfuse3 is in beta. Bugs are likely.h]h$pyfuse3 is in beta. Bugs are likely.}(hjZhhhNhNubah}(h!]h#]h%]h']h)]uh+h-hhhKhjIhhubh.)}(hpyfuse3 uses semantic versioning. This means backwards incompatible changes in the API will be reflected in an increase of the major version number.h]hpyfuse3 uses semantic versioning. This means backwards incompatible changes in the API will be reflected in an increase of the major version number.}(hjhhhhNhNubah}(h!]h#]h%]h']h)]uh+h-hhhKhjIhhubeh}(h!]development-statusah#]h%]development statusah']h)]uh+h hh hhhhhKubh )}(hhh](h)}(h Contributingh]h Contributing}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhj~hhhhhKubh.)}(h0The pyfuse3 source code is available on GitHub_.h](h(The pyfuse3 source code is available on }(hjhhhNhNubh8)}(hGitHub_h]hGitHub}(hjhhhNhNubah}(h!]h#]h%]h']h)]nameGitHubhI"https://github.com/libfuse/pyfuse3uh+h7hjhKKubh.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+h-hhhK!hj~hhubh target)}(h(.. __: http://www.rath.org/pyfuse3-docs/h]h}(h!]id1ah#]h%]h']h)]hIhhKuh+jhK+hj~hhhh referencedKubj)}(h0.. _libfuse 3: http://github.com/libfuse/libfuseh]h}(h!] libfuse-3ah#]h%] libfuse 3ah']h)]hIhJuh+jhK,hj~hhhhjKubj)}(hN.. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-develh]h}(h!]fuse-mailing-listah#]h%]fuse mailing listah']h)]hIj uh+jhK-hj~hhhhjKubj)}(h<.. _issue tracker: https://github.com/libfuse/pyfuse3/issuesh]h}(h!] issue-trackerah#]h%] issue trackerah']h)]hIhuh+jhK.hj~hhhhjKubj)}(hQ.. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.develh]h}(h!]mailing-list-archiveah#]h%]mailing list archiveah']h)]hIj!uh+jhK/hj~hhhhjKubj)}(h .. _Gmane: http://www.gmane.org/h]h}(h!]gmaneah#]h%]gmaneah']h)]hIj6uh+jhK0hj~hhhhjKubj)}(h/.. _PyPi: https://pypi.python.org/pypi/pyfuse3/h]h}(h!]pypiah#]h%]pypiah']h)]hIhuh+jhK1hj~hhhhjKubj)}(h... _GitHub: https://github.com/libfuse/pyfuse3h]h}(h!]githubah#]h%]githubah']h)]hIjuh+jhK2hj~hhhhjKubj)}(h-.. _Trio: https://github.com/python-trio/trioh]h}(h!]trioah#]h%]trioah']h)]hIh`uh+jhK3hj~hhhhjKubj)}(h;.. _asyncio: https://docs.python.org/3/library/asyncio.htmlh]h}(h!]asyncioah#]h%]asyncioah']h)]hIhuuh+jhK4hj~hhhhjKubeh}(h!] contributingah#]h%] contributingah']h)]uh+h hh hhhhhKubeh}(h!]aboutah#]h%]aboutah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj_error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh, _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}( libfuse 3]h9atrio]hPaasyncio]heapypi]ha issue tracker]hafuse mailing list]hamailing list archive]jagmane]j&agithub]jaurefids}nameids}(j9j6jFjCj{jxj1j.jjjjjjjjjjjjjjjjj)j&u nametypes}(j9jFj{j1jjjjjjjjj)uh!}(j6h jChjxjIj.j~jjjjjjjjjjjjjjjjjjj&j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jmKsRparse_messages]transform_messages] transformerN include_log] rst/about.rst(NNNNta decorationNhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/asyncio.doctree0000664000175000017500000001062214463757444017461 0ustar00twtwsphinx.addnodesdocument)}( rawsourcechildren](docutils.nodestarget)}(h .. _asyncio:h] attributes}(ids]classes]names]dupnames]backrefs]refidasyncioutagnameh lineKparenth _documenthsource"/home/tw/w/pyfuse3/rst/asyncio.rstubh section)}(hhh](h title)}(hasyncio Supporth]h Textasyncio Support}(h h+h!hh"NhNubah}(h]h]h]h]h]uhh)h h&h!hh"h#hKubh paragraph)}(hBy default, pyfuse3 uses asynchronous I/O using Trio_ (and most of the documentation assumes that you are using Trio). If you'd rather use asyncio, import the *pyfuse3_asyncio* module and call its *enable()* function before using *pyfuse3*. For example::h](h00By default, pyfuse3 uses asynchronous I/O using }(h h=h!hh"NhNubh reference)}(hTrio_h]h0Trio}(h hGh!hh"NhNubah}(h]h]h]h]h]nameTriorefuri#https://github.com/python-trio/triouhhEh h=resolvedKubh0l (and most of the documentation assumes that you are using Trio). If you’d rather use asyncio, import the }(h h=h!hh"NhNubh emphasis)}(h*pyfuse3_asyncio*h]h0pyfuse3_asyncio}(h h`h!hh"NhNubah}(h]h]h]h]h]uhh^h h=ubh0 module and call its }(h h=h!hh"NhNubh_)}(h *enable()*h]h0enable()}(h hrh!hh"NhNubah}(h]h]h]h]h]uhh^h h=ubh0 function before using }(h h=h!hh"NhNubh_)}(h *pyfuse3*h]h0pyfuse3}(h hh!hh"NhNubah}(h]h]h]h]h]uhh^h h=ubh0. For example:}(h h=h!hh"NhNubeh}(h]h]h]h]h]uhh;h"h#hKh h&h!hubh literal_block)}(heimport pyfuse3 import pyfuse3_asyncio pyfuse3_asyncio.enable() # Use pyfuse3 as usual from here on.h]h0eimport pyfuse3 import pyfuse3_asyncio pyfuse3_asyncio.enable() # Use pyfuse3 as usual from here on.}h hsbah}(h]h]h]h]h] xml:spacepreserveuhhh"h#hK h h&h!hubh )}(h-.. _Trio: https://github.com/python-trio/trioh]h}(h]trioah]h]trioah]h]hWhXuhh hKh h&h!hh"h# referencedKubeh}(h](asyncio-supportheh]h](asyncio supportasyncioeh]h]uhh$h hh!hh"h#hKexpect_referenced_by_name}hh sexpect_referenced_by_id}hh subeh}(h]h]h]h]h]sourceh#uhhcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(h)N generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerherror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh# _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}trio]hGasrefids}h]h asnameids}(hhhhhhu nametypes}(hhhuh}(hh&hh&hhu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages]h system_message)}(hhh]h<)}(hhh]h0-Hyperlink target "asyncio" is not referenced.}h jVsbah}(h]h]h]h]h]uhh;h jSubah}(h]h]h]h]h]levelKtypeINFOsourceh#lineKuhjQuba transformerN include_log] decorationNh!hub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/changes.doctree0000664000175000017500000006510214463757444017427 0ustar00twtw7jsphinx.addnodesdocument)}( rawsourcechildren]docutils.nodessection)}(hhh](h title)}(h Changelogh]h Text Changelog}(parenth _documenthsourceNlineNuba attributes}(ids]classes]names]dupnames]backrefs]utagnamehhh hhh Changes.rsthKubh )}(hhh](h)}(hRelease 3.3.0 (2023-08-06)h]hRelease 3.3.0 (2023-08-06)}(hh0hhhNhNubah}(h!]h#]h%]h']h)]uh+hhh-hhhh,hKubh bullet_list)}(hhh](h list_item)}(huNote: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported. h]h paragraph)}(htNote: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported.h]htNote: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported.}(hhKhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK hhEubah}(h!]h#]h%]h']h)]uh+hChh@hhhh,hNubhD)}(h%Cythonized with latest Cython 3.0.0. h]hJ)}(h$Cythonized with latest Cython 3.0.0.h]h$Cythonized with latest Cython 3.0.0.}(hhchhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK hh_ubah}(h!]h#]h%]h']h)]uh+hChh@hhhh,hNubhD)}(h2Drop Python 3.6 and 3.7 support and testing, #71. h]hJ)}(h1Drop Python 3.6 and 3.7 support and testing, #71.h]h1Drop Python 3.6 and 3.7 support and testing, #71.}(hh{hhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhhwubah}(h!]h#]h%]h']h)]uh+hChh@hhhh,hNubhD)}(h?CI: also test python 3.12. test on cython 0.29 and cython 3.0. h]hJ)}(h>CI: also test python 3.12. test on cython 0.29 and cython 3.0.h]h>CI: also test python 3.12. test on cython 0.29 and cython 3.0.}(hhhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhhubah}(h!]h#]h%]h']h)]uh+hChh@hhhh,hNubhD)}(h6Tell Cython that callbacks may raise exceptions, #80. h]hJ)}(h5Tell Cython that callbacks may raise exceptions, #80.h]h5Tell Cython that callbacks may raise exceptions, #80.}(hhhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhhubah}(h!]h#]h%]h']h)]uh+hChh@hhhh,hNubhD)}(h1Fix lookup in examples/hello.py, similar to #16. h]hJ)}(h0Fix lookup in examples/hello.py, similar to #16.h]h0Fix lookup in examples/hello.py, similar to #16.}(hhhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhhubah}(h!]h#]h%]h']h)]uh+hChh@hhhh,hNubhD)}(h7Misc. CI, testing, build and sphinx related fixes. h]hJ)}(h2Misc. CI, testing, build and sphinx related fixes.h]h2Misc. CI, testing, build and sphinx related fixes.}(hhhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhhubah}(h!]h#]h%]h']h)]uh+hChh@hhhh,hNubeh}(h!]h#]h%]h']h)]bullet*uh+h>hh,hK hh-hhubeh}(h!]release-3-3-0-2023-08-06ah#]h%]release 3.3.0 (2023-08-06)ah']h)]uh+h hh hhhh,hKubh )}(hhh](h)}(hRelease 3.2.3 (2023-05-09)h]hRelease 3.2.3 (2023-05-09)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhhhhhh,hKubh?)}(hhh](hD)}(hBcythonize with latest Cython 0.29.34 (brings Python 3.12 support) h]hJ)}(hAcythonize with latest Cython 0.29.34 (brings Python 3.12 support)h]hAcythonize with latest Cython 0.29.34 (brings Python 3.12 support)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK hjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h1add a minimal pyproject.toml, require setuptools h]hJ)}(h0add a minimal pyproject.toml, require setuptoolsh]h0add a minimal pyproject.toml, require setuptools}(hj/hhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK"hj+ubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h8tests: fix integer overflow on 32-bit arches, fixes #47 h]hJ)}(h7tests: fix integer overflow on 32-bit arches, fixes #47h]h7tests: fix integer overflow on 32-bit arches, fixes #47}(hjGhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK$hjCubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h>test: Use shutil.which() instead of external which(1) program h]hJ)}(h=test: Use shutil.which() instead of external which(1) programh]h=test: Use shutil.which() instead of external which(1) program}(hj_hhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK&hj[ubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(hFsetup.py: catch more generic OSError when searching Cython, fixes #63 h]hJ)}(hEsetup.py: catch more generic OSError when searching Cython, fixes #63h]hEsetup.py: catch more generic OSError when searching Cython, fixes #63}(hjwhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK(hjsubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h!setup.py: require Cython >= 0.29 h]hJ)}(h setup.py: require Cython >= 0.29h]h setup.py: require Cython >= 0.29}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK*hjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h;fix basedir computation in setup.py (fix pip install -e .) h]hJ)}(h:fix basedir computation in setup.py (fix pip install -e .)h]h:fix basedir computation in setup.py (fix pip install -e .)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK,hjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(hHuse sphinx < 6.0 due to compatibility issues with more recent versions h]hJ)}(hFuse sphinx < 6.0 due to compatibility issues with more recent versionsh]hFuse sphinx < 6.0 due to compatibility issues with more recent versions}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK.hjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubeh}(h!]h#]h%]h']h)]hhuh+h>hh,hK hhhhubeh}(h!]release-3-2-3-2023-05-09ah#]h%]release 3.2.3 (2023-05-09)ah']h)]uh+h hh hhhh,hKubh )}(hhh](h)}(hRelease 3.2.2 (2022-09-28)h]hRelease 3.2.2 (2022-09-28)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hK2ubh?)}(hhh](hD)}(hFremove support for python 3.5 (broken, out of support by python devs) h]hJ)}(hEremove support for python 3.5 (broken, out of support by python devs)h]hEremove support for python 3.5 (broken, out of support by python devs)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK4hjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(hAcythonize with latest Cython 0.29.x (brings Python 3.11 support) h]hJ)}(h@cythonize with latest Cython 0.29.x (brings Python 3.11 support)h]h@cythonize with latest Cython 0.29.x (brings Python 3.11 support)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK6hj ubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h,use github actions for CI, remove travis-ci h]hJ)}(h+use github actions for CI, remove travis-cih]h+use github actions for CI, remove travis-ci}(hj)hhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK8hj%ubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h2update README: minimal maintenance, not developed h]hJ)}(h1update README: minimal maintenance, not developedh]h1update README: minimal maintenance, not developed}(hjAhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK:hj=ubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(h,update setup.py with tested python versions h]hJ)}(h+update setup.py with tested python versionsh]h+update setup.py with tested python versions}(hjYhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhjmubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubeh}(h!]h#]h%]h']h)]hhuh+h>hh,hK4hjhhubeh}(h!]release-3-2-2-2022-09-28ah#]h%]release 3.2.2 (2022-09-28)ah']h)]uh+h hh hhhh,hK2ubh )}(hhh](h)}(hRelease 3.2.1 (2021-09-17)h]hRelease 3.2.1 (2021-09-17)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hKCubh?)}(hhh](hD)}(hAdd type annotations h]hJ)}(hAdd type annotationsh]hAdd type annotations}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKEhjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(hPPassing a XATTR_CREATE or XATTR_REPLACE to setxattr() is now working correctly. h]hJ)}(hOPassing a XATTR_CREATE or XATTR_REPLACE to setxattr() is now working correctly.h]hOPassing a XATTR_CREATE or XATTR_REPLACE to setxattr() is now working correctly.}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKGhjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubeh}(h!]h#]h%]h']h)]hhuh+h>hh,hKEhjhhubeh}(h!]release-3-2-1-2021-09-17ah#]h%]release 3.2.1 (2021-09-17)ah']h)]uh+h hh hhhh,hKCubh )}(hhh](h)}(hRelease 3.2.0 (2020-12-30)h]hRelease 3.2.0 (2020-12-30)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hKKubh?)}(hhh](hD)}(hpFix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500. h]hJ)}(hoFix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500.h]hoFix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500.}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKMhjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(hPThere is a new `pyfuse3.terminate()` function to gracefully end the main loop. h]hJ)}(hNThere is a new `pyfuse3.terminate()` function to gracefully end the main loop.h](hThere is a new }(hjhhhNhNubh pending_xref)}(h`pyfuse3.terminate()`h]h literal)}(hj!h]hpyfuse3.terminate()}(hj%hhhNhNubah}(h!]h#](xrefpypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocchanges refdomainj0reftypeobj refexplicitrefwarn py:modulepyfuse3py:classN reftargetpyfuse3.terminate()uh+jhh,hKPhjubh* function to gracefully end the main loop.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKPhjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubeh}(h!]h#]h%]h']h)]hhuh+h>hh,hKMhjhhubeh}(h!]release-3-2-0-2020-12-30ah#]h%]release 3.2.0 (2020-12-30)ah']h)]uh+h hh hhhh,hKKubh )}(hhh](h)}(hRelease 3.1.1 (2020-10-06)h]hRelease 3.1.1 (2020-10-06)}(hjhhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjehhhh,hKUubh?)}(hhh]hD)}(h_No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility. h]hJ)}(h]No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility.h]h]No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility.}(hj}hhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKWhjyubah}(h!]h#]h%]h']h)]uh+hChjvhhhh,hNubah}(h!]h#]h%]h']h)]hhuh+h>hh,hKWhjehhubeh}(h!]release-3-1-1-2020-10-06ah#]h%]release 3.1.1 (2020-10-06)ah']h)]uh+h hh hhhh,hKUubh )}(hhh](h)}(hRelease 3.1.0 (2020-05-31)h]hRelease 3.1.0 (2020-05-31)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hK\ubh?)}(hhh]hD)}(h*Made compatible with newest Trio module. h]hJ)}(h(Made compatible with newest Trio module.h]h(Made compatible with newest Trio module.}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hK^hjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubah}(h!]h#]h%]h']h)]hhuh+h>hh,hK^hjhhubeh}(h!]release-3-1-0-2020-05-31ah#]h%]release 3.1.0 (2020-05-31)ah']h)]uh+h hh hhhh,hK\ubh )}(hhh](h)}(hRelease 3.0.0 (2020-05-08)h]hRelease 3.0.0 (2020-05-08)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hKbubh?)}(hhh]hD)}(hChanged `create` handler to return a `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. h](hJ)}(hChanged `create` handler to return a `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``.h](hChanged }(hjhhhNhNubj)}(h`create`h]j$)}(hjh]hcreate}(hjhhhNhNubah}(h!]h#](j/pypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocj< refdomainjreftypeobj refexplicitrefwarnjBjCjDNjEcreateuh+jhh,hKdhjubh handler to return a }(hjhhhNhNubj)}(h `FileInfo`h]j$)}(hjh]hFileInfo}(hj!hhhNhNubah}(h!]h#](j/pypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocj< refdomainj+reftypeobj refexplicitrefwarnjBjCjDNjEFileInfouh+jhh,hKdhjubhJ struct to allow for modification of certain kernel file attributes, e.g. }(hjhhhNhNubj$)}(h ``direct_io``h]h direct_io}(hjAhhhNhNubah}(h!]h#]h%]h']h)]uh+j#hjubh.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKdhjubhJ)}(hpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.h]hpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.}(hjYhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKghjubeh}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubah}(h!]h#]h%]h']h)]hhuh+h>hh,hKdhjhhubeh}(h!]release-3-0-0-2020-05-08ah#]h%]release 3.0.0 (2020-05-08)ah']h)]uh+h hh hhhh,hKbubh )}(hhh](h)}(h Release 2.0.0h]h Release 2.0.0}(hj~hhhNhNubah}(h!]h#]h%]h']h)]uh+hhj{hhhh,hKlubh?)}(hhh]hD)}(hChanged `open` handler to return the new `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. h](hJ)}(hChanged `open` handler to return the new `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``.h](hChanged }(hjhhhNhNubj)}(h`open`h]j$)}(hjh]hopen}(hjhhhNhNubah}(h!]h#](j/pypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocj< refdomainjreftypeobj refexplicitrefwarnjBjCjDNjEopenuh+jhh,hKnhjubh handler to return the new }(hjhhhNhNubj)}(h `FileInfo`h]j$)}(hjh]hFileInfo}(hjhhhNhNubah}(h!]h#](j/pypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocj< refdomainjreftypeobj refexplicitrefwarnjBjCjDNjEFileInfouh+jhh,hKnhjubhJ struct to allow for modification of certain kernel file attributes, e.g. }(hjhhhNhNubj$)}(h ``direct_io``h]h direct_io}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+j#hjubh.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKnhjubhJ)}(hpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.h]hpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKqhjubeh}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubah}(h!]h#]h%]h']h)]hhuh+h>hh,hKnhj{hhubeh}(h!] release-2-0-0ah#]h%] release 2.0.0ah']h)]uh+h hh hhhh,hKlubh )}(hhh](h)}(hRelease 1.3.1 (2019-07-17)h]hRelease 1.3.1 (2019-07-17)}(hj hhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hKuubh?)}(hhh]hD)}(h5Fixed a bug in the :file:`hello_asyncio.py` example. h]hJ)}(h4Fixed a bug in the :file:`hello_asyncio.py` example.h](hFixed a bug in the }(hj5hhhNhNubj$)}(h:file:`hello_asyncio.py`h]hhello_asyncio.py}(hj=hhhNhNubah}(h!]h#]fileah%]h']h)]rolefileuh+j#hj5ubh example.}(hj5hhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKwhj1ubah}(h!]h#]h%]h']h)]uh+hChj.hhhh,hNubah}(h!]h#]h%]h']h)]hhuh+h>hh,hKwhjhhubeh}(h!]release-1-3-1-2019-07-17ah#]h%]release 1.3.1 (2019-07-17)ah']h)]uh+h hh hhhh,hKuubh )}(hhh](h)}(hRelease 1.3 (2019-06-02)h]hRelease 1.3 (2019-06-02)}(hjohhhNhNubah}(h!]h#]h%]h']h)]uh+hhjlhhhh,hKzubh?)}(hhh]hD)}(h}Fixed a bug in the :file:`tmpfs.py` and :file:`passthroughfs.py` example file systems (so rename operations no longer fail). h]hJ)}(h|Fixed a bug in the :file:`tmpfs.py` and :file:`passthroughfs.py` example file systems (so rename operations no longer fail).h](hFixed a bug in the }(hjhhhNhNubj$)}(h:file:`tmpfs.py`h]htmpfs.py}(hjhhhNhNubah}(h!]h#]fileah%]h']h)]rolefileuh+j#hjubh and }(hjhhhNhNubj$)}(h:file:`passthroughfs.py`h]hpassthroughfs.py}(hjhhhNhNubah}(h!]h#]fileah%]h']h)]rolefileuh+j#hjubh< example file systems (so rename operations no longer fail).}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hK|hjubah}(h!]h#]h%]h']h)]uh+hChj}hhhh,hNubah}(h!]h#]h%]h']h)]hhuh+h>hh,hK|hjlhhubeh}(h!]release-1-3-2019-06-02ah#]h%]release 1.3 (2019-06-02)ah']h)]uh+h hh hhhh,hKzubh )}(hhh](h)}(hRelease 1.2 (2018-12-22)h]hRelease 1.2 (2018-12-22)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hKubh?)}(hhh](hD)}(hBClarified that `invalidate_inode` may block in some circumstances.h]hJ)}(hjh](hClarified that }(hjhhhNhNubj)}(h`invalidate_inode`h]j$)}(hjh]hinvalidate_inode}(hjhhhNhNubah}(h!]h#](j/pypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocj< refdomainjreftypeobj refexplicitrefwarnjBjCjDNjEinvalidate_inodeuh+jhh,hKhjubh! may block in some circumstances.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKhjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubhD)}(hhh,hKhjhhubeh}(h!]release-1-2-2018-12-22ah#]h%]release 1.2 (2018-12-22)ah']h)]uh+h hh hhhh,hKubh )}(hhh](h)}(hRelease 1.1 (2018-11-02)h]hRelease 1.1 (2018-11-02)}(hjHhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjEhhhh,hKubh?)}(hhh](hD)}(hOFixed :file:`examples/passthroughfs.py` - was not handling readdir() correctly.h]hJ)}(hOFixed :file:`examples/passthroughfs.py` - was not handling readdir() correctly.h](hFixed }(hj]hhhNhNubj$)}(h!:file:`examples/passthroughfs.py`h]hexamples/passthroughfs.py}(hjehhhNhNubah}(h!]h#]fileah%]h']h)]rolefileuh+j#hj]ubh( - was not handling readdir() correctly.}(hj]hhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKhjYubah}(h!]h#]h%]h']h)]uh+hChjVhhhh,hNubhD)}(h`invalidate_entry_async` now accepts an additional *ignore_enoent* parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed. h]hJ)}(h`invalidate_entry_async` now accepts an additional *ignore_enoent* parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed.h](j)}(h`invalidate_entry_async`h]j$)}(hjh]hinvalidate_entry_async}(hjhhhNhNubah}(h!]h#](j/pypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocj< refdomainjreftypeobj refexplicitrefwarnjBjCjDNjEinvalidate_entry_asyncuh+jhh,hKhjubh now accepts an additional }(hjhhhNhNubh emphasis)}(h*ignore_enoent*h]h ignore_enoent}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+jhjubh parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKhjubah}(h!]h#]h%]h']h)]uh+hChjVhhhh,hNubeh}(h!]h#]h%]h']h)]hhuh+h>hh,hKhjEhhubeh}(h!]release-1-1-2018-11-02ah#]h%]release 1.1 (2018-11-02)ah']h)]uh+h hh hhhh,hKubh )}(hhh](h)}(hRelease 1.0 (2018-10-08)h]hRelease 1.0 (2018-10-08)}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hKubh?)}(hhh]hD)}(h Added a new `syncfs` function. h]hJ)}(hAdded a new `syncfs` function.h](h Added a new }(hjhhhNhNubj)}(h`syncfs`h]j$)}(hjh]hsyncfs}(hjhhhNhNubah}(h!]h#](j/pypy-objeh%]h']h)]uh+j#hjubah}(h!]h#]h%]h']h)]refdocj< refdomainjreftypeobj refexplicitrefwarnjBjCjDNjEsyncfsuh+jhh,hKhjubh function.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hIhh,hKhjubah}(h!]h#]h%]h']h)]uh+hChjhhhh,hNubah}(h!]h#]h%]h']h)]hhuh+h>hh,hKhjhhubeh}(h!]release-1-0-2018-10-08ah#]h%]release 1.0 (2018-10-08)ah']h)]uh+h hh hhhh,hKubh )}(hhh](h)}(hRelease 0.9 (2018-09-27)h]hRelease 0.9 (2018-09-27)}(hjAhhhNhNubah}(h!]h#]h%]h']h)]uh+hhj>hhhh,hKubh?)}(hhh](hD)}(h First releaseh]hJ)}(hjTh]h First release}(hjVhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhjRubah}(h!]h#]h%]h']h)]uh+hChjOhhhh,hNubhD)}(h@pyfuse3 was forked from python-llfuse - thanks for all the work!h]hJ)}(hjkh]h@pyfuse3 was forked from python-llfuse - thanks for all the work!}(hjmhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhjiubah}(h!]h#]h%]h']h)]uh+hChjOhhhh,hNubhD)}(hpIf you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead. h]hJ)}(hoIf you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead.h]hoIf you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead.}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hIhh,hKhjubah}(h!]h#]h%]h']h)]uh+hChjOhhhh,hNubeh}(h!]h#]h%]h']h)]hhuh+h>hh,hKhj>hhubeh}(h!]release-0-9-2018-09-27ah#]h%]release 0.9 (2018-09-27)ah']h)]uh+h hh hhhh,hKubeh}(h!] changelogah#]h%] changelogah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]source"/home/tw/w/pyfuse3/rst/changes.rstuh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcej _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjhhjjjjjjjbj_jjjjjxjujjjijfjjjBj?jjj;j8jju nametypes}(jhjjjjbjjjxjjijjBjj;juh!}(jh hh-jhjjjjj_jjjejjjujjj{jfjjjlj?jjjEj8jjj>u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log]rst/changes.rst(NNNNta decorationNhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/data.doctree0000664000175000017500000002475714463757444016743 0ustar00twtw)sphinx.addnodesdocument)}( rawsourcechildren]docutils.nodessection)}(hhh](h title)}(hData Structuresh]h TextData Structures}(parenth _documenthsourceNlineNuba attributes}(ids]classes]names]dupnames]backrefs]utagnamehhh hhh/home/tw/w/pyfuse3/rst/data.rsthKubhindex)}(hhh]h}(h!]h#]h%]h']h)]entries](singleENOATTR (in module pyfuse3)pyfuse3.ENOATTRhNtauh+h-hh hhhh,hNubhdesc)}(hhh](hdesc_signature)}(hENOATTRh](h desc_addname)}(hpyfuse3.h]hpyfuse3.}(hhKhhhNhNubah}(h!]h#]( sig-prename descclassnameeh%]h']h)] xml:spacepreserveuh+hIhhEhhhh,hKubh desc_name)}(hhGh]hENOATTR}(hh_hhhNhNubah}(h!]h#](sig-namedescnameeh%]h']h)]h[h\uh+h]hhEhhhh,hKubeh}(h!]hhhhh hh,hNubh.)}(hhh]h}(h!]h#]h%]h']h)]entries](h:ROOT_INODE (in module pyfuse3)pyfuse3.ROOT_INODEhNtauh+h-hh hhhh,hNubh?)}(hhh](hD)}(h ROOT_INODEh](hJ)}(hpyfuse3.h]hpyfuse3.}(hhhhhNhNubah}(h!]h#](hVhWeh%]h']h)]h[h\uh+hIhhhhhh,hK ubh^)}(hhh]h ROOT_INODE}(hhhhhNhNubah}(h!]h#](hihjeh%]h']h)]h[h\uh+h]hhhhhh,hK ubeh}(h!]hah#](hqhreh%]h']h)]hvhwhxhhyhhzhwh憔h|huh+hChh,hK hhhhubh~)}(hhh]h)}(hIThe inode of the root directory, i.e. the mount point of the file system.h]hIThe inode of the root directory, i.e. the mount point of the file system.}(hj hhhNhNubah}(h!]h#]h%]h']h)]uh+hhh,hKhj hhubah}(h!]h#]h%]h']h)]uh+h}hhhhhh,hK ubeh}(h!]h#](pydataeh%]h']h)]hj$hj%hj%hЉhщh҉uh+h>hhhh hh,hNubh.)}(hhh]h}(h!]h#]h%]h']h)]entries](h:#RENAME_EXCHANGE (in module pyfuse3)pyfuse3.RENAME_EXCHANGEhNtauh+h-hh hhhh,hNubh?)}(hhh](hD)}(hRENAME_EXCHANGEh](hJ)}(hpyfuse3.h]hpyfuse3.}(hj>hhhNhNubah}(h!]h#](hVhWeh%]h']h)]h[h\uh+hIhj:hhhh,hKubh^)}(hj<h]hRENAME_EXCHANGE}(hjLhhhNhNubah}(h!]h#](hihjeh%]h']h)]h[h\uh+h]hj:hhhh,hKubeh}(h!]j5ah#](hqhreh%]h']h)]hvhwhxhhyj<hzhwj<h|j<uh+hChh,hKhj7hhubh~)}(hhh]h)}(hA flag that may be passed to the `~Operations.rename` handler. When passed, the handler must atomically exchange the two paths (which must both exist).h](h!A flag that may be passed to the }(hjchhhNhNubh)}(h`~Operations.rename`h]h)}(hjmh]hrename}(hjohhhNhNubah}(h!]h#](hpypy-objeh%]h']h)]uh+hhjkubah}(h!]h#]h%]h']h)]refdoch refdomainjyreftypeobj refexplicitrefwarnhhwhNhOperations.renameuh+hhh,hKhjcubhb handler. When passed, the handler must atomically exchange the two paths (which must both exist).}(hjchhhNhNubeh}(h!]h#]h%]h']h)]uh+hhh,hKhj`hhubah}(h!]h#]h%]h']h)]uh+h}hj7hhhh,hKubeh}(h!]h#](pydataeh%]h']h)]hjhjhjhЉhщh҉uh+h>hhhh hh,hNubh.)}(hhh]h}(h!]h#]h%]h']h)]entries](h:$RENAME_NOREPLACE (in module pyfuse3)pyfuse3.RENAME_NOREPLACEhNtauh+h-hh hhhh,hNubh?)}(hhh](hD)}(hRENAME_NOREPLACEh](hJ)}(hpyfuse3.h]hpyfuse3.}(hjhhhNhNubah}(h!]h#](hVhWeh%]h']h)]h[h\uh+hIhjhhhh,hKubh^)}(hjh]hRENAME_NOREPLACE}(hjhhhNhNubah}(h!]h#](hihjeh%]h']h)]h[h\uh+h]hjhhhh,hKubeh}(h!]jah#](hqhreh%]h']h)]hvhwhxhhyjhzhwjh|juh+hChh,hKhjhhubh~)}(hhh]h)}(h|A flag that may be passed to the `~Operations.rename` handler. When passed, the handler must not replace an existing target.h](h!A flag that may be passed to the }(hjhhhNhNubh)}(h`~Operations.rename`h]h)}(hjh]hrename}(hjhhhNhNubah}(h!]h#](hpypy-objeh%]h']h)]uh+hhjubah}(h!]h#]h%]h']h)]refdoch refdomainjreftypeobj refexplicitrefwarnhhwhNhOperations.renameuh+hhh,hKhjubhG handler. When passed, the handler must not replace an existing target.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hhh,hKhjhhubah}(h!]h#]h%]h']h)]uh+h}hjhhhh,hKubeh}(h!]h#](pydataeh%]h']h)]hjhjhjhЉhщh҉uh+h>hhhh hh,hNubh.)}(hhh]h}(h!]h#]h%]h']h)]entries](h:#default_options (in module pyfuse3)pyfuse3.default_optionshNtauh+h-hh hhhNhNubh?)}(hhh](hD)}(hdefault_optionsh](hJ)}(hpyfuse3.h]hpyfuse3.}(hj2hhhNhNubah}(h!]h#](hVhWeh%]h']h)]h[h\uh+hIhj.hhhh,hKubh^)}(hj0h]hdefault_options}(hj@hhhNhNubah}(h!]h#](hihjeh%]h']h)]h[h\uh+h]hj.hhhh,hKubeh}(h!]j)ah#](hqhreh%]h']h)]hvhwhxhhyj0hzhwj0h|j0uh+hChh,hKhj+hhubh~)}(hhh](h)}(hThis is a recommended set of options that should be passed to `pyfuse3.init` to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason.h](h>This is a recommended set of options that should be passed to }(hjWhhhNhNubh)}(h`pyfuse3.init`h]h)}(hjah]h pyfuse3.init}(hjchhhNhNubah}(h!]h#](hpypy-objeh%]h']h)]uh+hhj_ubah}(h!]h#]h%]h']h)]refdoch refdomainjmreftypeobj refexplicitrefwarnhhwhNh pyfuse3.inituh+hhh,hKhjWubh to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason.}(hjWhhhNhNubeh}(h!]h#]h%]h']h)]uh+hhh,hKhjThhubh)}(h(The :samp:`fsname=` option is guaranteed never to be included in the default options, so you can always safely add it to the set).h](h(The }(hjhhhNhNubh)}(h:samp:`fsname=`h]h fsname=}(hjhhhNhNubah}(h!]h#]sampah%]h']h)]rolesampuh+hhjubho option is guaranteed never to be included in the default options, so you can always safely add it to the set).}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hhh,hK$hjThhubh)}(hThe default options are:h]hThe default options are:}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhh,hK'hjThhubh bullet_list)}(hhh]h list_item)}(h|``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.h]h)}(h|``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.h](h)}(h``default_permissions``h]hdefault_permissions}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjubhe enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hhh,hK)hjubah}(h!]h#]h%]h']h)]uh+jhjhhhh,hNubah}(h!]h#]h%]h']h)]bullet*uh+jhh,hK)hjThhubeh}(h!]h#]h%]h']h)]uh+h}hj+hhhh,hKubeh}(h!]h#](pydataeh%]h']h)]hjhjhjhЉhщh҉uh+h>hhhh hNhNubeh}(h!]data-structuresah#]h%]data structuresah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj(error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh, _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}jjs nametypes}jsh!}(jh hhhN needs_sphinxNNNneeds_extensions}NN manpages_urlNhhNh3NNnitpick_ignore]NNnitpick_ignore_regex]NNnumfighhNnumfig_secnum_depthKhhNh\h]hhNmath_number_allhhNmath_eqref_formatNhhN math_numfighhN tls_verifyhhN tls_cacertsNhhN user_agentNhhN smartquoteshhNsmartquotes_actionqDehhNsmartquotes_excludes}( languages]jaabuilders](mantexteuhhNoption_emphasise_placeholdershhN epub_basenameh5hnN epub_versionG@epubN epub_themehhNepub_theme_options}hN epub_titleh5hN epub_authorhkhN epub_languagehyhNepub_publisherhkhNepub_copyrighth7hNepub_identifierhkhN epub_schemehkhNepub_uidhkhhN epub_cover)hhN epub_guide)hhNepub_pre_files]hhNepub_post_files]hhNhVhWhNepub_exclude_files]hhN epub_tocdepthKhhN epub_tocduphhN epub_tocscopehFhhNepub_fix_imageshhNepub_max_image_widthKhhNepub_show_urlsinlinehNepub_use_indexhNepub_descriptionhkhNepub_contributorhkhNepub_writing_mode horizontalhNhEhFhoNhtml_theme_path]hoNhtml_theme_options}hoN html_titlepyfuse3 3.3.0 documentationhoNhtml_short_titlepyfuse3 3.3.0 documentationhoN html_styleNhoN html_logoNhoN html_faviconNhoNhXhYhoNhZh[hoNhGhHhoNhtml_extra_path]hoNhtml_last_updated_fmtNhoN html_sidebars}hoNhtml_additional_pages}hoNhtml_domain_indiceshoNhtml_add_permalinkssphinx.builders.html_stable_repr_object)hoNhtml_permalinkshoNhtml_permalinks_icon¶hoNhJhoNhKhoNhtml_copy_sourcehoNhLhoNhtml_sourcelink_suffix.txthoNhtml_use_opensearchhnhoNhtml_file_suffixNhoNhtml_link_suffixNhoNhtml_show_copyrighthoNhtml_show_search_summaryhoNhtml_show_sphinxhoN html_context}hoNhtml_output_encodingutf-8hoNhtml_compact_listshoNhtml_secnumber_suffix. hoNhtml_search_languageNhoNhtml_search_options}hoNhtml_search_scorerhnNNhtml_scaled_image_linkhoN html_baseurlhnhoNhtml_codeblock_linenos_stylejhoNhtml_math_rendererNhhN html4_writerhoN mathjax_path;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.jshoNmathjax_options}hoNmathjax_inline](\(\)ehoNmathjax_display](\[\]ehoNmathjax_configNhoNmathjax2_configNhoNmathjax3_configNhoNgettext_compacthNgettext_locationhN gettext_uuidhNgettext_auto_buildhhNgettext_additional_targets]hhNgettext_last_translatorFULL NAME hNgettext_language_teamLANGUAGE hN latex_enginepdflatexhnNhOhPhnN latex_logoNhnNlatex_appendices]hnNlatex_use_latex_multicolumnhnNlatex_use_xindyhnNlatex_toplevel_sectioningNhnNlatex_domain_indiceshnNlatex_show_urlsnohnNlatex_show_pagerefshnNlatex_elements}hnNlatex_additional_files]hnNlatex_table_style]hnN latex_themehThnNlatex_theme_options}hnNlatex_theme_path]hnNlatex_docclass}hnNlinkcheck_ignore]hnNlinkcheck_exclude_documents]hnNlinkcheck_allowed_redirects}hnNlinkcheck_auth]hnNlinkcheck_request_headers}hnNlinkcheck_retriesKhnNlinkcheck_timeoutNhnNlinkcheck_workersKhnNlinkcheck_anchorshnNlinkcheck_anchors_ignore]^!ahnNlinkcheck_rate_limit_timeoutG@rhnN man_pages](h2pyfuse3 pyfuse3 3.3.0]hkaKtahnN man_show_urlshnNman_make_section_directoryhnNsinglehtml_sidebarsj=hoNtexinfo_documents](h2pyfuse3h5hkjOne line description of project MiscellaneoustahnNtexinfo_appendices]hnNtexinfo_elements}hnNtexinfo_domain_indiceshnNtexinfo_show_urlsfootnotehnNtexinfo_no_detailmenuhnNtexinfo_cross_referenceshnNtext_sectionchars*=-~"+`hhN text_newlinesunixhhNtext_add_secnumbershhNtext_secnumber_suffix. hhN xml_prettyhhNc_id_attributes]hhNc_paren_attributes]hhNc_extra_keywords](alignasalignofboolcomplex imaginarynoreturn static_assert thread_localehhNc_allow_pre_v3hhNc_warn_on_allowed_pre_v3hhNcpp_index_common_prefix]hhNcpp_id_attributes]hhNcpp_paren_attributes]hhNcpp_debug_lookuphnNcpp_debug_show_treehnNstrip_signature_backslashhhN!python_use_unqualified_type_nameshhNapplehelp_bundle_nameh5 applehelpNapplehelp_bundle_idNjDNapplehelp_dev_regionen-usjDNapplehelp_bundle_version1jDNapplehelp_iconNjDNapplehelp_kb_product pyfuse3-3.3.0jDNapplehelp_kb_urlNjDNapplehelp_remote_urlNjDNapplehelp_index_anchorsjDNapplehelp_min_term_lengthNjDNapplehelp_stopwordshyjDNapplehelp_localehyjDNapplehelp_title pyfuse3 HelpjDNapplehelp_codesign_identityNjDNapplehelp_codesign_flags]jDNapplehelp_indexer_path/usr/bin/hiutiljDNapplehelp_codesign_path/usr/bin/codesignjDN applehelp_disable_external_toolsjDNdevhelp_basenameh5devhelpNhMhNhnNhtmlhelp_file_suffixNhoNhtmlhelp_link_suffixNhoNqthelp_basenameh5hoNqthelp_namespaceNhoN qthelp_themenonavhoNqthelp_theme_options}hoNautoclass_contentclasshhNautodoc_member_order alphabeticalhhNautodoc_class_signaturemixedhhNautodoc_default_options}hhNh.hhNautodoc_mock_imports]hhNautodoc_typehints signaturehhN$autodoc_typehints_description_targetallhhNautodoc_type_aliases}hhNautodoc_typehints_formatshorthhNautodoc_warningiserrorhhNautodoc_inherit_docstringshhNautodoc_preserve_defaultshhNhhhhNintersphinx_cache_limitKhnNintersphinx_timeoutNhnNintersphinx_disabled_reftypes]std:docahhNuub config_statusKconfig_status_extrahneventsNh4sphinx.projectProject)}(hh h(h,docnames(installfuse_apiaboutgeneral operationsexampledatachangesasyncioindexgotchasutilubh8}(sphinx.domains.cKsphinx.domains.changesetKsphinx.domains.citationKsphinx.domains.cppKsphinx.domains.indexKsphinx.domains.javascriptKsphinx.domains.mathKsphinx.domains.pythonKsphinx.domains.rstKsphinx.domains.stdKhKhCK9uversioning_conditionversioning_comparedomains}settings}(auto_id_prefixid image_loadinglinkembed_stylesheetcloak_email_addresses pep_base_urlhttps://peps.python.org/pep_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/rfc_referencesNinput_encodingh0doctitle_xformsectsubtitle_xformsection_self_link halt_levelKfile_insertion_enabledsmartquotes_locales]hhhh language_codehy smart_quotesuall_docs}(jGA3,jGA3,ߖjGA3.YjGA3/pjGA3/jGA30>jGA31MjGA31}(j }(pyfuse3.ENOATTRsphinx.domains.python ObjectEntry(jj datatpyfuse3.ROOT_INODEj (jj datatpyfuse3.RENAME_EXCHANGEj (jj datatpyfuse3.RENAME_NOREPLACEj (jj datatpyfuse3.default_optionsj (jj datatpyfuse3.trio_tokenj (jj datatpyfuse3j (jj moduletuj }j j ModuleEntry(jj hnhntsh8Kurst}(j }h8Kustd}( progoptions}j }labels}(genindexj! hn sphinx.locale_TranslationProxy(j" _lazy_translatehCgeneralIndextj& hCj' j( bmodindex py-modindexhnj$ (j& hCj' Module Indextj& hCj' j0 bsearchj6 hnj$ (j& hCj' Search Pagetj& hCj' j7 b py-modindexj= hnPython Module Indexasynciojasyncioasyncio Supportexample file systemjexample-file-systemExample File Systemsgetting_startedjgetting-startedGetting startedu anonlabels}(j! j! hnj. j/ hnj6 j6 hnj= j= hnj@ jjA jD jjE jH jjI uh8Kterms}uuimages sphinx.utilFilenameUniqDict)bdlfilesjX DownloadFiles)original_image_uri} temp_data} ref_context}intersphinx_cache}(hhJ$d}(c:member}(CO_FUTURE_DIVISION(Python3.11Bhttps://docs.python.org/3/c-api/veryhigh.html#c.CO_FUTURE_DIVISION-tPyAsyncMethods.am_aiter(jm jn Fhttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_aiterjp tPyAsyncMethods.am_anext(jm jn Fhttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_anextjp tPyAsyncMethods.am_await(jm jn Fhttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_awaitjp tPyAsyncMethods.am_send(jm jn Ehttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_sendjp t PyBool_Type(jm jn 7https://docs.python.org/3/c-api/bool.html#c.PyBool_Typejp tPyBufferProcs.bf_getbuffer(jm jn Ihttps://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_getbufferjp tPyBufferProcs.bf_releasebuffer(jm jn Mhttps://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_releasebufferjp tPyByteArray_Type(jm jn Ahttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Typejp t PyBytes_Type(jm jn 9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Typejp tPyCallIter_Type(jm jn ?https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Typejp t PyCell_Type(jm jn 7https://docs.python.org/3/c-api/cell.html#c.PyCell_Typejp t PyCode_Type(jm jn 7https://docs.python.org/3/c-api/code.html#c.PyCode_Typejp t"PyCompilerFlags.cf_feature_version(jm jn Rhttps://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlags.cf_feature_versionjp tPyCompilerFlags.cf_flags(jm jn Hhttps://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlags.cf_flagsjp tPyComplex_Type(jm jn =https://docs.python.org/3/c-api/complex.html#c.PyComplex_Typejp t PyConfig.argv(jm jn @https://docs.python.org/3/c-api/init_config.html#c.PyConfig.argvjp tPyConfig.base_exec_prefix(jm jn Lhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.base_exec_prefixjp tPyConfig.base_executable(jm jn Khttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.base_executablejp tPyConfig.base_prefix(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.base_prefixjp tPyConfig.buffered_stdio(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.buffered_stdiojp tPyConfig.bytes_warning(jm jn Ihttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.bytes_warningjp tPyConfig.check_hash_pycs_mode(jm jn Phttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.check_hash_pycs_modejp tPyConfig.code_debug_ranges(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.code_debug_rangesjp tPyConfig.configure_c_stdio(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.configure_c_stdiojp tPyConfig.dev_mode(jm jn Dhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.dev_modejp tPyConfig.dump_refs(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.dump_refsjp tPyConfig.exec_prefix(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.exec_prefixjp tPyConfig.executable(jm jn Fhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.executablejp tPyConfig.faulthandler(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.faulthandlerjp tPyConfig.filesystem_encoding(jm jn Ohttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.filesystem_encodingjp tPyConfig.filesystem_errors(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.filesystem_errorsjp tPyConfig.hash_seed(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.hash_seedjp t PyConfig.home(jm jn @https://docs.python.org/3/c-api/init_config.html#c.PyConfig.homejp tPyConfig.import_time(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.import_timejp tPyConfig.inspect(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.inspectjp t PyConfig.install_signal_handlers(jm jn Shttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.install_signal_handlersjp tPyConfig.interactive(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.interactivejp tPyConfig.isolated(jm jn Dhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.isolatedjp tPyConfig.legacy_windows_stdio(jm jn Phttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.legacy_windows_stdiojp tPyConfig.malloc_stats(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.malloc_statsjp tPyConfig.module_search_paths(jm jn Ohttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.module_search_pathsjp t PyConfig.module_search_paths_set(jm jn Shttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.module_search_paths_setjp tPyConfig.optimization_level(jm jn Nhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.optimization_leveljp tPyConfig.orig_argv(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.orig_argvjp tPyConfig.parse_argv(jm jn Fhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.parse_argvjp tPyConfig.parser_debug(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.parser_debugjp tPyConfig.pathconfig_warnings(jm jn Ohttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.pathconfig_warningsjp tPyConfig.platlibdir(jm jn Fhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.platlibdirjp tPyConfig.prefix(jm jn Bhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.prefixjp tPyConfig.program_name(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.program_namejp tPyConfig.pycache_prefix(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.pycache_prefixjp tPyConfig.pythonpath_env(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.pythonpath_envjp tPyConfig.quiet(jm jn Ahttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.quietjp tPyConfig.run_command(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.run_commandjp tPyConfig.run_filename(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.run_filenamejp tPyConfig.run_module(jm jn Fhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.run_modulejp tPyConfig.safe_path(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.safe_pathjp tPyConfig.show_ref_count(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.show_ref_countjp tPyConfig.site_import(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.site_importjp tPyConfig.skip_source_first_line(jm jn Rhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.skip_source_first_linejp tPyConfig.stdio_encoding(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.stdio_encodingjp tPyConfig.stdio_errors(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.stdio_errorsjp tPyConfig.tracemalloc(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.tracemallocjp tPyConfig.use_environment(jm jn Khttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.use_environmentjp tPyConfig.use_hash_seed(jm jn Ihttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.use_hash_seedjp tPyConfig.user_site_directory(jm jn Ohttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.user_site_directoryjp tPyConfig.verbose(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.verbosejp tPyConfig.warn_default_encoding(jm jn Qhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.warn_default_encodingjp tPyConfig.warnoptions(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.warnoptionsjp tPyConfig.write_bytecode(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.write_bytecodejp tPyConfig.xoptions(jm jn Dhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.xoptionsjp tPyContextToken_Type(jm jn Fhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextToken_Typejp tPyContextVar_Type(jm jn Dhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Typejp tPyContext_Type(jm jn Ahttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Typejp t PyCoro_Type(jm jn 7https://docs.python.org/3/c-api/coro.html#c.PyCoro_Typejp tPyDateTime_TimeZone_UTC(jm jn Ghttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TimeZone_UTCjp t PyDict_Type(jm jn 7https://docs.python.org/3/c-api/dict.html#c.PyDict_Typejp t PyFloat_Type(jm jn 9https://docs.python.org/3/c-api/float.html#c.PyFloat_Typejp t PyFrame_Type(jm jn 9https://docs.python.org/3/c-api/frame.html#c.PyFrame_Typejp tPyFrozenSet_Type(jm jn ;https://docs.python.org/3/c-api/set.html#c.PyFrozenSet_Typejp tPyFunction_Type(jm jn ?https://docs.python.org/3/c-api/function.html#c.PyFunction_Typejp t PyGen_Type(jm jn 5https://docs.python.org/3/c-api/gen.html#c.PyGen_Typejp tPyImport_FrozenModules(jm jn Dhttps://docs.python.org/3/c-api/import.html#c.PyImport_FrozenModulesjp tPyInstanceMethod_Type(jm jn Chttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Typejp t PyList_Type(jm jn 7https://docs.python.org/3/c-api/list.html#c.PyList_Typejp t PyLong_Type(jm jn 7https://docs.python.org/3/c-api/long.html#c.PyLong_Typejp t!PyMappingMethods.mp_ass_subscript(jm jn Phttps://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_ass_subscriptjp tPyMappingMethods.mp_length(jm jn Ihttps://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_lengthjp tPyMappingMethods.mp_subscript(jm jn Lhttps://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_subscriptjp tPyMethodDef.ml_doc(jm jn Dhttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_docjp tPyMethodDef.ml_flags(jm jn Fhttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_flagsjp tPyMethodDef.ml_meth(jm jn Ehttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_methjp tPyMethodDef.ml_name(jm jn Ehttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_namejp t PyMethod_Type(jm jn ;https://docs.python.org/3/c-api/method.html#c.PyMethod_Typejp tPyModuleDef.m_base(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_basejp tPyModuleDef.m_clear(jm jn Ahttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_clearjp tPyModuleDef.m_doc(jm jn ?https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_docjp tPyModuleDef.m_free(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_freejp tPyModuleDef.m_methods(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_methodsjp tPyModuleDef.m_name(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_namejp tPyModuleDef.m_size(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_sizejp tPyModuleDef.m_slots(jm jn Ahttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_slotsjp tPyModuleDef.m_slots.m_reload(jm jn Jhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_slots.m_reloadjp tPyModuleDef.m_traverse(jm jn Dhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_traversejp tPyModuleDef_Slot.slot(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModuleDef_Slot.slotjp tPyModuleDef_Slot.value(jm jn Dhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef_Slot.valuejp t PyModule_Type(jm jn ;https://docs.python.org/3/c-api/module.html#c.PyModule_Typejp tPyNumberMethods.nb_absolute(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_absolutejp tPyNumberMethods.nb_add(jm jn Ehttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_addjp tPyNumberMethods.nb_and(jm jn Ehttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_andjp tPyNumberMethods.nb_bool(jm jn Fhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_booljp tPyNumberMethods.nb_divmod(jm jn Hhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_divmodjp tPyNumberMethods.nb_float(jm jn Ghttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_floatjp tPyNumberMethods.nb_floor_divide(jm jn Nhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_floor_dividejp tPyNumberMethods.nb_index(jm jn Ghttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_indexjp tPyNumberMethods.nb_inplace_add(jm jn Mhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_addjp tPyNumberMethods.nb_inplace_and(jm jn Mhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_andjp t'PyNumberMethods.nb_inplace_floor_divide(jm jn Vhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_floor_dividejp t!PyNumberMethods.nb_inplace_lshift(jm jn Phttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_lshiftjp t*PyNumberMethods.nb_inplace_matrix_multiply(jm jn Yhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_matrix_multiplyjp t#PyNumberMethods.nb_inplace_multiply(jm jn Rhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_multiplyjp tPyNumberMethods.nb_inplace_or(jm jn Lhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_orjp t PyNumberMethods.nb_inplace_power(jm jn Ohttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_powerjp t$PyNumberMethods.nb_inplace_remainder(jm jn Shttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_remainderjp t!PyNumberMethods.nb_inplace_rshift(jm jn Phttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_rshiftjp t#PyNumberMethods.nb_inplace_subtract(jm jn Rhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_subtractjp t&PyNumberMethods.nb_inplace_true_divide(jm jn Uhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_true_dividejp tPyNumberMethods.nb_inplace_xor(jm jn Mhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_xorjp tPyNumberMethods.nb_int(jm jn Ehttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_intjp tPyNumberMethods.nb_invert(jm jn Hhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_invertjp tPyNumberMethods.nb_lshift(jm jn Hhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_lshiftjp t"PyNumberMethods.nb_matrix_multiply(jm jn Qhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_matrix_multiplyjp tPyNumberMethods.nb_multiply(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_multiplyjp tPyNumberMethods.nb_negative(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_negativejp tPyNumberMethods.nb_or(jm jn Dhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_orjp tPyNumberMethods.nb_positive(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_positivejp tPyNumberMethods.nb_power(jm jn Ghttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_powerjp tPyNumberMethods.nb_remainder(jm jn Khttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_remainderjp tPyNumberMethods.nb_reserved(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_reservedjp tPyNumberMethods.nb_rshift(jm jn Hhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_rshiftjp tPyNumberMethods.nb_subtract(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_subtractjp tPyNumberMethods.nb_true_divide(jm jn Mhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_true_dividejp tPyNumberMethods.nb_xor(jm jn Ehttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_xorjp tPyOS_InputHook(jm jn >https://docs.python.org/3/c-api/veryhigh.html#c.PyOS_InputHookjp tPyOS_ReadlineFunctionPointer(jm jn Lhttps://docs.python.org/3/c-api/veryhigh.html#c.PyOS_ReadlineFunctionPointerjp tPyObject._ob_next(jm jn @https://docs.python.org/3/c-api/typeobj.html#c.PyObject._ob_nextjp tPyObject._ob_prev(jm jn @https://docs.python.org/3/c-api/typeobj.html#c.PyObject._ob_prevjp tPyObject.ob_refcnt(jm jn Ahttps://docs.python.org/3/c-api/typeobj.html#c.PyObject.ob_refcntjp tPyObject.ob_type(jm jn ?https://docs.python.org/3/c-api/typeobj.html#c.PyObject.ob_typejp tPyPreConfig.allocator(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.allocatorjp tPyPreConfig.coerce_c_locale(jm jn Nhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.coerce_c_localejp t PyPreConfig.coerce_c_locale_warn(jm jn Shttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.coerce_c_locale_warnjp tPyPreConfig.configure_locale(jm jn Ohttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.configure_localejp tPyPreConfig.dev_mode(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.dev_modejp tPyPreConfig.isolated(jm jn Ghttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.isolatedjp t&PyPreConfig.legacy_windows_fs_encoding(jm jn Yhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.legacy_windows_fs_encodingjp tPyPreConfig.parse_argv(jm jn Ihttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.parse_argvjp tPyPreConfig.use_environment(jm jn Nhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.use_environmentjp tPyPreConfig.utf8_mode(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.utf8_modejp tPyProperty_Type(jm jn Ahttps://docs.python.org/3/c-api/descriptor.html#c.PyProperty_Typejp tPySeqIter_Type(jm jn >https://docs.python.org/3/c-api/iterator.html#c.PySeqIter_Typejp tPySequenceMethods.sq_ass_item(jm jn Lhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_ass_itemjp tPySequenceMethods.sq_concat(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_concatjp tPySequenceMethods.sq_contains(jm jn Lhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_containsjp t#PySequenceMethods.sq_inplace_concat(jm jn Rhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_concatjp t#PySequenceMethods.sq_inplace_repeat(jm jn Rhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_repeatjp tPySequenceMethods.sq_item(jm jn Hhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_itemjp tPySequenceMethods.sq_length(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_lengthjp tPySequenceMethods.sq_repeat(jm jn Jhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_repeatjp t PySet_Type(jm jn 5https://docs.python.org/3/c-api/set.html#c.PySet_Typejp t PySlice_Type(jm jn 9https://docs.python.org/3/c-api/slice.html#c.PySlice_Typejp tPyStatus.err_msg(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyStatus.err_msgjp tPyStatus.exitcode(jm jn Dhttps://docs.python.org/3/c-api/init_config.html#c.PyStatus.exitcodejp t PyStatus.func(jm jn @https://docs.python.org/3/c-api/init_config.html#c.PyStatus.funcjp tPyStructSequence_Desc.doc(jm jn Fhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.docjp tPyStructSequence_Desc.fields(jm jn Ihttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.fieldsjp t#PyStructSequence_Desc.n_in_sequence(jm jn Phttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.n_in_sequencejp tPyStructSequence_Desc.name(jm jn Ghttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.namejp tPyStructSequence_Field.doc(jm jn Ghttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Field.docjp tPyStructSequence_Field.name(jm jn Hhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Field.namejp tPyStructSequence_UnnamedField(jm jn Jhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_UnnamedFieldjp tPyThreadState.interp(jm jn @https://docs.python.org/3/c-api/init.html#c.PyThreadState.interpjp t PyTrace_CALL(jm jn 8https://docs.python.org/3/c-api/init.html#c.PyTrace_CALLjp tPyTrace_C_CALL(jm jn :https://docs.python.org/3/c-api/init.html#c.PyTrace_C_CALLjp tPyTrace_C_EXCEPTION(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyTrace_C_EXCEPTIONjp tPyTrace_C_RETURN(jm jn https://docs.python.org/3/c-api/init.html#c.Py_InteractiveFlagjp tPy_IsolatedFlag(jm jn ;https://docs.python.org/3/c-api/init.html#c.Py_IsolatedFlagjp tPy_LegacyWindowsFSEncodingFlag(jm jn Jhttps://docs.python.org/3/c-api/init.html#c.Py_LegacyWindowsFSEncodingFlagjp tPy_LegacyWindowsStdioFlag(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.Py_LegacyWindowsStdioFlagjp t Py_NoSiteFlag(jm jn 9https://docs.python.org/3/c-api/init.html#c.Py_NoSiteFlagjp tPy_NoUserSiteDirectory(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.Py_NoUserSiteDirectoryjp tPy_None(jm jn 3https://docs.python.org/3/c-api/none.html#c.Py_Nonejp tPy_NotImplemented(jm jn ?https://docs.python.org/3/c-api/object.html#c.Py_NotImplementedjp tPy_OptimizeFlag(jm jn ;https://docs.python.org/3/c-api/init.html#c.Py_OptimizeFlagjp t Py_QuietFlag(jm jn 8https://docs.python.org/3/c-api/init.html#c.Py_QuietFlagjp tPy_True(jm jn 3https://docs.python.org/3/c-api/bool.html#c.Py_Truejp tPy_UnbufferedStdioFlag(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.Py_UnbufferedStdioFlagjp tPy_VerboseFlag(jm jn :https://docs.python.org/3/c-api/init.html#c.Py_VerboseFlagjp t Py_Version(jm jn ?https://docs.python.org/3/c-api/apiabiversion.html#c.Py_Versionjp t Py_buffer.buf(jm jn ;https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.bufjp tPy_buffer.format(jm jn >https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.formatjp tPy_buffer.internal(jm jn @https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.internaljp tPy_buffer.itemsize(jm jn @https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.itemsizejp t Py_buffer.len(jm jn ;https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.lenjp tPy_buffer.ndim(jm jn https://docs.python.org/3/c-api/structures.html#c.METH_COEXISTjp t METH_FASTCALL(jm jn ?https://docs.python.org/3/c-api/structures.html#c.METH_FASTCALLjp t METH_KEYWORDS(jm jn ?https://docs.python.org/3/c-api/structures.html#c.METH_KEYWORDSjp t METH_METHOD(jm jn =https://docs.python.org/3/c-api/structures.html#c.METH_METHODjp t METH_NOARGS(jm jn =https://docs.python.org/3/c-api/structures.html#c.METH_NOARGSjp tMETH_O(jm jn 8https://docs.python.org/3/c-api/structures.html#c.METH_Ojp t METH_STATIC(jm jn =https://docs.python.org/3/c-api/structures.html#c.METH_STATICjp t METH_VARARGS(jm jn >https://docs.python.org/3/c-api/structures.html#c.METH_VARARGSjp tPYMEM_DOMAIN_MEM(jm jn >https://docs.python.org/3/c-api/memory.html#c.PYMEM_DOMAIN_MEMjp tPYMEM_DOMAIN_OBJ(jm jn >https://docs.python.org/3/c-api/memory.html#c.PYMEM_DOMAIN_OBJjp tPYMEM_DOMAIN_RAW(jm jn >https://docs.python.org/3/c-api/memory.html#c.PYMEM_DOMAIN_RAWjp tPY_MAJOR_VERSION(jm jn Ehttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_MAJOR_VERSIONjp tPY_MICRO_VERSION(jm jn Ehttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_MICRO_VERSIONjp tPY_MINOR_VERSION(jm jn Ehttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_MINOR_VERSIONjp tPY_RELEASE_LEVEL(jm jn Ehttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_RELEASE_LEVELjp tPY_RELEASE_SERIAL(jm jn Fhttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_RELEASE_SERIALjp tPY_VECTORCALL_ARGUMENTS_OFFSET(jm jn Jhttps://docs.python.org/3/c-api/call.html#c.PY_VECTORCALL_ARGUMENTS_OFFSETjp tPY_VERSION_HEX(jm jn Chttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_VERSION_HEXjp tPyBUF_ANY_CONTIGUOUS(jm jn Bhttps://docs.python.org/3/c-api/buffer.html#c.PyBUF_ANY_CONTIGUOUSjp t PyBUF_CONTIG(jm jn :https://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIGjp tPyBUF_CONTIG_RO(jm jn =https://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIG_ROjp tPyBUF_C_CONTIGUOUS(jm jn @https://docs.python.org/3/c-api/buffer.html#c.PyBUF_C_CONTIGUOUSjp t PyBUF_FORMAT(jm jn :https://docs.python.org/3/c-api/buffer.html#c.PyBUF_FORMATjp t PyBUF_FULL(jm jn 8https://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULLjp t PyBUF_FULL_RO(jm jn ;https://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULL_ROjp tPyBUF_F_CONTIGUOUS(jm jn @https://docs.python.org/3/c-api/buffer.html#c.PyBUF_F_CONTIGUOUSjp tPyBUF_INDIRECT(jm jn https://docs.python.org/3/c-api/buffer.html#c.PyBUF_RECORDS_ROjp t PyBUF_SIMPLE(jm jn :https://docs.python.org/3/c-api/buffer.html#c.PyBUF_SIMPLEjp t PyBUF_STRIDED(jm jn ;https://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDEDjp tPyBUF_STRIDED_RO(jm jn >https://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDED_ROjp t PyBUF_STRIDES(jm jn ;https://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDESjp tPyBUF_WRITABLE(jm jn https://docs.python.org/3/c-api/allocation.html#c.PyObject_Newjp tPyObject_NewVar(jm jn Ahttps://docs.python.org/3/c-api/allocation.html#c.PyObject_NewVarjp tPyObject_VAR_HEAD(jm jn Chttps://docs.python.org/3/c-api/structures.html#c.PyObject_VAR_HEADjp tPyUnicode_1BYTE_KIND(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_1BYTE_KINDjp tPyUnicode_2BYTE_KIND(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_2BYTE_KINDjp tPyUnicode_4BYTE_KIND(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_4BYTE_KINDjp tPyUnicode_WCHAR_KIND(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WCHAR_KINDjp tPyVarObject_HEAD_INIT(jm jn Ghttps://docs.python.org/3/c-api/structures.html#c.PyVarObject_HEAD_INITjp tPy_ABS(jm jn 3https://docs.python.org/3/c-api/intro.html#c.Py_ABSjp tPy_ALWAYS_INLINE(jm jn =https://docs.python.org/3/c-api/intro.html#c.Py_ALWAYS_INLINEjp tPy_BEGIN_ALLOW_THREADS(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.Py_BEGIN_ALLOW_THREADSjp tPy_BLOCK_THREADS(jm jn https://docs.python.org/3/c-api/init.html#c.Py_UNBLOCK_THREADSjp tPy_UNICODE_IS_HIGH_SURROGATE(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_HIGH_SURROGATEjp tPy_UNICODE_IS_LOW_SURROGATE(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_LOW_SURROGATEjp tPy_UNICODE_IS_SURROGATE(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_SURROGATEjp tPy_UNICODE_JOIN_SURROGATES(jm jn Ihttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_JOIN_SURROGATESjp tPy_UNREACHABLE(jm jn ;https://docs.python.org/3/c-api/intro.html#c.Py_UNREACHABLEjp t Py_UNUSED(jm jn 6https://docs.python.org/3/c-api/intro.html#c.Py_UNUSEDjp t Py_mod_create(jm jn ;https://docs.python.org/3/c-api/module.html#c.Py_mod_createjp t Py_mod_exec(jm jn 9https://docs.python.org/3/c-api/module.html#c.Py_mod_execjp tPy_tss_NEEDS_INIT(jm jn =https://docs.python.org/3/c-api/init.html#c.Py_tss_NEEDS_INITjp tu c:function}( PyAIter_Check(jm jn 9https://docs.python.org/3/c-api/iter.html#c.PyAIter_Checkjp tPyAnySet_Check(jm jn 9https://docs.python.org/3/c-api/set.html#c.PyAnySet_Checkjp tPyAnySet_CheckExact(jm jn >https://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckExactjp t PyArg_Parse(jm jn 6https://docs.python.org/3/c-api/arg.html#c.PyArg_Parsejp tPyArg_ParseTuple(jm jn ;https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuplejp tPyArg_ParseTupleAndKeywords(jm jn Fhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywordsjp tPyArg_UnpackTuple(jm jn https://docs.python.org/3/c-api/buffer.html#c.PyBuffer_Releasejp tPyBuffer_SizeFromFormat(jm jn Ehttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_SizeFromFormatjp tPyBuffer_ToContiguous(jm jn Chttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguousjp tPyByteArray_AS_STRING(jm jn Fhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AS_STRINGjp tPyByteArray_AsString(jm jn Ehttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AsStringjp tPyByteArray_Check(jm jn Bhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Checkjp tPyByteArray_CheckExact(jm jn Ghttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckExactjp tPyByteArray_Concat(jm jn Chttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Concatjp tPyByteArray_FromObject(jm jn Ghttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromObjectjp tPyByteArray_FromStringAndSize(jm jn Nhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSizejp tPyByteArray_GET_SIZE(jm jn Ehttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_GET_SIZEjp tPyByteArray_Resize(jm jn Chttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Resizejp tPyByteArray_Size(jm jn Ahttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Sizejp tPyBytes_AS_STRING(jm jn >https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AS_STRINGjp tPyBytes_AsString(jm jn =https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringjp tPyBytes_AsStringAndSize(jm jn Dhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSizejp t PyBytes_Check(jm jn :https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Checkjp tPyBytes_CheckExact(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckExactjp tPyBytes_Concat(jm jn ;https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Concatjp tPyBytes_ConcatAndDel(jm jn Ahttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDeljp tPyBytes_FromFormat(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatjp tPyBytes_FromFormatV(jm jn @https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatVjp tPyBytes_FromObject(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromObjectjp tPyBytes_FromString(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringjp tPyBytes_FromStringAndSize(jm jn Fhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSizejp tPyBytes_GET_SIZE(jm jn =https://docs.python.org/3/c-api/bytes.html#c.PyBytes_GET_SIZEjp t PyBytes_Size(jm jn 9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Sizejp tPyCallIter_Check(jm jn @https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Checkjp tPyCallIter_New(jm jn >https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Newjp tPyCallable_Check(jm jn https://docs.python.org/3/c-api/code.html#c.PyCode_GetCellvarsjp tPyCode_GetCode(jm jn :https://docs.python.org/3/c-api/code.html#c.PyCode_GetCodejp tPyCode_GetFreevars(jm jn >https://docs.python.org/3/c-api/code.html#c.PyCode_GetFreevarsjp tPyCode_GetNumFree(jm jn =https://docs.python.org/3/c-api/code.html#c.PyCode_GetNumFreejp tPyCode_GetVarnames(jm jn >https://docs.python.org/3/c-api/code.html#c.PyCode_GetVarnamesjp t PyCode_New(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_NewEmpty(jm jn ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmptyjp tPyCode_NewWithPosOnlyArgs(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp tPyCodec_BackslashReplaceErrors(jm jn Khttps://docs.python.org/3/c-api/codec.html#c.PyCodec_BackslashReplaceErrorsjp tPyCodec_Decode(jm jn ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decodejp tPyCodec_Decoder(jm jn https://docs.python.org/3/c-api/complex.html#c.PyComplex_Checkjp tPyComplex_CheckExact(jm jn Chttps://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckExactjp tPyComplex_FromCComplex(jm jn Ehttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromCComplexjp tPyComplex_FromDoubles(jm jn Dhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoublesjp tPyComplex_ImagAsDouble(jm jn Ehttps://docs.python.org/3/c-api/complex.html#c.PyComplex_ImagAsDoublejp tPyComplex_RealAsDouble(jm jn Ehttps://docs.python.org/3/c-api/complex.html#c.PyComplex_RealAsDoublejp tPyConfig_Clear(jm jn Ahttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_Clearjp tPyConfig_InitIsolatedConfig(jm jn Nhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitIsolatedConfigjp tPyConfig_InitPythonConfig(jm jn Lhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitPythonConfigjp t PyConfig_Read(jm jn @https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Readjp tPyConfig_SetArgv(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgvjp tPyConfig_SetBytesArgv(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgvjp tPyConfig_SetBytesString(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesStringjp tPyConfig_SetString(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetStringjp tPyConfig_SetWideStringList(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringListjp tPyContextToken_CheckExact(jm jn Lhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextToken_CheckExactjp tPyContextVar_CheckExact(jm jn Jhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_CheckExactjp tPyContextVar_Get(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Getjp tPyContextVar_New(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Newjp tPyContextVar_Reset(jm jn Ehttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Resetjp tPyContextVar_Set(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Setjp tPyContext_CheckExact(jm jn Ghttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_CheckExactjp tPyContext_Copy(jm jn Ahttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Copyjp tPyContext_CopyCurrent(jm jn Hhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_CopyCurrentjp tPyContext_Enter(jm jn Bhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Enterjp tPyContext_Exit(jm jn Ahttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Exitjp t PyContext_New(jm jn @https://docs.python.org/3/c-api/contextvars.html#c.PyContext_Newjp tPyCoro_CheckExact(jm jn =https://docs.python.org/3/c-api/coro.html#c.PyCoro_CheckExactjp t PyCoro_New(jm jn 6https://docs.python.org/3/c-api/coro.html#c.PyCoro_Newjp tPyDateTime_Check(jm jn @https://docs.python.org/3/c-api/datetime.html#c.PyDateTime_Checkjp tPyDateTime_CheckExact(jm jn Ehttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckExactjp tPyDateTime_DATE_GET_FOLD(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_FOLDjp tPyDateTime_DATE_GET_HOUR(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_HOURjp tPyDateTime_DATE_GET_MICROSECOND(jm jn Ohttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MICROSECONDjp tPyDateTime_DATE_GET_MINUTE(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MINUTEjp tPyDateTime_DATE_GET_SECOND(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_SECONDjp tPyDateTime_DATE_GET_TZINFO(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_TZINFOjp tPyDateTime_DELTA_GET_DAYS(jm jn Ihttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_DAYSjp t!PyDateTime_DELTA_GET_MICROSECONDS(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_MICROSECONDSjp tPyDateTime_DELTA_GET_SECONDS(jm jn Lhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_SECONDSjp tPyDateTime_FromDateAndTime(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp t!PyDateTime_FromDateAndTimeAndFold(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp tPyDateTime_FromTimestamp(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromTimestampjp tPyDateTime_GET_DAY(jm jn Bhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_DAYjp tPyDateTime_GET_MONTH(jm jn Dhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_MONTHjp tPyDateTime_GET_YEAR(jm jn Chttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_YEARjp tPyDateTime_TIME_GET_FOLD(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_FOLDjp tPyDateTime_TIME_GET_HOUR(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_HOURjp tPyDateTime_TIME_GET_MICROSECOND(jm jn Ohttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MICROSECONDjp tPyDateTime_TIME_GET_MINUTE(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MINUTEjp tPyDateTime_TIME_GET_SECOND(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_SECONDjp tPyDateTime_TIME_GET_TZINFO(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_TZINFOjp t PyDate_Check(jm jn https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Formatjp t PyErr_FormatV(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatVjp tPyErr_GetExcInfo(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfojp tPyErr_GetHandledException(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetHandledExceptionjp tPyErr_GivenExceptionMatches(jm jn Mhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatchesjp tPyErr_NewException(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionjp tPyErr_NewExceptionWithDoc(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDocjp tPyErr_NoMemory(jm jn @https://docs.python.org/3/c-api/exceptions.html#c.PyErr_NoMemoryjp tPyErr_NormalizeException(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeExceptionjp tPyErr_Occurred(jm jn @https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Occurredjp t PyErr_Print(jm jn =https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Printjp t PyErr_PrintEx(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintExjp tPyErr_ResourceWarning(jm jn Ghttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarningjp t PyErr_Restore(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restorejp tPyErr_SetExcFromWindowsErr(jm jn Lhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrjp t&PyErr_SetExcFromWindowsErrWithFilename(jm jn Xhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenamejp t,PyErr_SetExcFromWindowsErrWithFilenameObject(jm jn ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectjp t-PyErr_SetExcFromWindowsErrWithFilenameObjects(jm jn _https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectsjp tPyErr_SetExcInfo(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfojp tPyErr_SetFromErrno(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnojp tPyErr_SetFromErrnoWithFilename(jm jn Phttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenamejp t$PyErr_SetFromErrnoWithFilenameObject(jm jn Vhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectjp t%PyErr_SetFromErrnoWithFilenameObjects(jm jn Whttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectsjp tPyErr_SetFromWindowsErr(jm jn Ihttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrjp t#PyErr_SetFromWindowsErrWithFilename(jm jn Uhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilenamejp tPyErr_SetHandledException(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetHandledExceptionjp tPyErr_SetImportError(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorjp tPyErr_SetImportErrorSubclass(jm jn Nhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclassjp tPyErr_SetInterrupt(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterruptjp tPyErr_SetInterruptEx(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterruptExjp t PyErr_SetNone(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetNonejp tPyErr_SetObject(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObjectjp tPyErr_SetString(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetStringjp tPyErr_SyntaxLocation(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationjp tPyErr_SyntaxLocationEx(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationExjp tPyErr_SyntaxLocationObject(jm jn Lhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObjectjp t PyErr_WarnEx(jm jn >https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExjp tPyErr_WarnExplicit(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitjp tPyErr_WarnExplicitObject(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectjp tPyErr_WarnFormat(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormatjp tPyErr_WriteUnraisable(jm jn Ghttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WriteUnraisablejp tPyEval_AcquireLock(jm jn >https://docs.python.org/3/c-api/init.html#c.PyEval_AcquireLockjp tPyEval_AcquireThread(jm jn @https://docs.python.org/3/c-api/init.html#c.PyEval_AcquireThreadjp tPyEval_EvalCode(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodejp tPyEval_EvalCodeEx(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalFrame(jm jn @https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFramejp tPyEval_EvalFrameEx(jm jn Bhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameExjp tPyEval_GetBuiltins(jm jn Dhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetBuiltinsjp tPyEval_GetFrame(jm jn Ahttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFramejp tPyEval_GetFuncDesc(jm jn Dhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncDescjp tPyEval_GetFuncName(jm jn Dhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncNamejp tPyEval_GetGlobals(jm jn Chttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetGlobalsjp tPyEval_GetLocals(jm jn Bhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetLocalsjp tPyEval_InitThreads(jm jn >https://docs.python.org/3/c-api/init.html#c.PyEval_InitThreadsjp tPyEval_MergeCompilerFlags(jm jn Ihttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_MergeCompilerFlagsjp tPyEval_ReleaseLock(jm jn >https://docs.python.org/3/c-api/init.html#c.PyEval_ReleaseLockjp tPyEval_ReleaseThread(jm jn @https://docs.python.org/3/c-api/init.html#c.PyEval_ReleaseThreadjp tPyEval_RestoreThread(jm jn @https://docs.python.org/3/c-api/init.html#c.PyEval_RestoreThreadjp tPyEval_SaveThread(jm jn =https://docs.python.org/3/c-api/init.html#c.PyEval_SaveThreadjp tPyEval_SetProfile(jm jn =https://docs.python.org/3/c-api/init.html#c.PyEval_SetProfilejp tPyEval_SetTrace(jm jn ;https://docs.python.org/3/c-api/init.html#c.PyEval_SetTracejp tPyEval_ThreadsInitialized(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyEval_ThreadsInitializedjp tPyException_GetCause(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetCausejp tPyException_GetContext(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetContextjp tPyException_GetTraceback(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetTracebackjp tPyException_SetCause(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCausejp tPyException_SetContext(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContextjp tPyException_SetTraceback(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTracebackjp t PyFile_FromFd(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_GetLine(jm jn :https://docs.python.org/3/c-api/file.html#c.PyFile_GetLinejp tPyFile_SetOpenCodeHook(jm jn Bhttps://docs.python.org/3/c-api/file.html#c.PyFile_SetOpenCodeHookjp tPyFile_WriteObject(jm jn >https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObjectjp tPyFile_WriteString(jm jn >https://docs.python.org/3/c-api/file.html#c.PyFile_WriteStringjp tPyFloat_AS_DOUBLE(jm jn >https://docs.python.org/3/c-api/float.html#c.PyFloat_AS_DOUBLEjp tPyFloat_AsDouble(jm jn =https://docs.python.org/3/c-api/float.html#c.PyFloat_AsDoublejp t PyFloat_Check(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Checkjp tPyFloat_CheckExact(jm jn ?https://docs.python.org/3/c-api/float.html#c.PyFloat_CheckExactjp tPyFloat_FromDouble(jm jn ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromDoublejp tPyFloat_FromString(jm jn ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromStringjp tPyFloat_GetInfo(jm jn https://docs.python.org/3/c-api/frame.html#c.PyFrame_GetLocalsjp tPyFrozenSet_Check(jm jn https://docs.python.org/3/c-api/function.html#c.PyFunction_Newjp tPyFunction_NewWithQualName(jm jn Jhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualNamejp tPyFunction_SetAnnotations(jm jn Ihttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotationsjp tPyFunction_SetClosure(jm jn Ehttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosurejp tPyFunction_SetDefaults(jm jn Fhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaultsjp t PyGC_Collect(jm jn =https://docs.python.org/3/c-api/gcsupport.html#c.PyGC_Collectjp t PyGC_Disable(jm jn =https://docs.python.org/3/c-api/gcsupport.html#c.PyGC_Disablejp t PyGC_Enable(jm jn https://docs.python.org/3/c-api/init.html#c.PyGILState_Releasejp t PyGen_Check(jm jn 6https://docs.python.org/3/c-api/gen.html#c.PyGen_Checkjp tPyGen_CheckExact(jm jn ;https://docs.python.org/3/c-api/gen.html#c.PyGen_CheckExactjp t PyGen_New(jm jn 4https://docs.python.org/3/c-api/gen.html#c.PyGen_Newjp tPyGen_NewWithQualName(jm jn @https://docs.python.org/3/c-api/gen.html#c.PyGen_NewWithQualNamejp tPyImport_AddModule(jm jn @https://docs.python.org/3/c-api/import.html#c.PyImport_AddModulejp tPyImport_AddModuleObject(jm jn Fhttps://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleObjectjp tPyImport_AppendInittab(jm jn Dhttps://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittabjp tPyImport_ExecCodeModule(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModulejp tPyImport_ExecCodeModuleEx(jm jn Ghttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleExjp tPyImport_ExecCodeModuleObject(jm jn Khttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObjectjp t$PyImport_ExecCodeModuleWithPathnames(jm jn Rhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnamesjp tPyImport_ExtendInittab(jm jn Dhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExtendInittabjp tPyImport_GetImporter(jm jn Bhttps://docs.python.org/3/c-api/import.html#c.PyImport_GetImporterjp tPyImport_GetMagicNumber(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_GetMagicNumberjp tPyImport_GetMagicTag(jm jn Bhttps://docs.python.org/3/c-api/import.html#c.PyImport_GetMagicTagjp tPyImport_GetModule(jm jn @https://docs.python.org/3/c-api/import.html#c.PyImport_GetModulejp tPyImport_GetModuleDict(jm jn Dhttps://docs.python.org/3/c-api/import.html#c.PyImport_GetModuleDictjp tPyImport_Import(jm jn =https://docs.python.org/3/c-api/import.html#c.PyImport_Importjp tPyImport_ImportFrozenModule(jm jn Ihttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModulejp t!PyImport_ImportFrozenModuleObject(jm jn Ohttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModuleObjectjp tPyImport_ImportModule(jm jn Chttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModulejp tPyImport_ImportModuleEx(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleExjp tPyImport_ImportModuleLevel(jm jn Hhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLeveljp t PyImport_ImportModuleLevelObject(jm jn Nhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectjp tPyImport_ImportModuleNoBlock(jm jn Jhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleNoBlockjp tPyImport_ReloadModule(jm jn Chttps://docs.python.org/3/c-api/import.html#c.PyImport_ReloadModulejp t PyIndex_Check(jm jn ;https://docs.python.org/3/c-api/number.html#c.PyIndex_Checkjp tPyInit_modulename(jm jn Ehttps://docs.python.org/3/extending/building.html#c.PyInit_modulenamejp tPyInstanceMethod_Check(jm jn Dhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Checkjp tPyInstanceMethod_Function(jm jn Ghttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Functionjp tPyInstanceMethod_GET_FUNCTION(jm jn Khttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_GET_FUNCTIONjp tPyInstanceMethod_New(jm jn Bhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Newjp tPyInterpreterState_Clear(jm jn Dhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Clearjp tPyInterpreterState_Delete(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Deletejp tPyInterpreterState_Get(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Getjp tPyInterpreterState_GetDict(jm jn Fhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_GetDictjp tPyInterpreterState_GetID(jm jn Dhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_GetIDjp tPyInterpreterState_Head(jm jn Chttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Headjp tPyInterpreterState_Main(jm jn Chttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Mainjp tPyInterpreterState_New(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Newjp tPyInterpreterState_Next(jm jn Chttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Nextjp tPyInterpreterState_ThreadHead(jm jn Ihttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_ThreadHeadjp t PyIter_Check(jm jn 8https://docs.python.org/3/c-api/iter.html#c.PyIter_Checkjp t PyIter_Next(jm jn 7https://docs.python.org/3/c-api/iter.html#c.PyIter_Nextjp t PyIter_Send(jm jn 7https://docs.python.org/3/c-api/iter.html#c.PyIter_Sendjp t PyList_Append(jm jn 9https://docs.python.org/3/c-api/list.html#c.PyList_Appendjp tPyList_AsTuple(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_AsTuplejp t PyList_Check(jm jn 8https://docs.python.org/3/c-api/list.html#c.PyList_Checkjp tPyList_CheckExact(jm jn =https://docs.python.org/3/c-api/list.html#c.PyList_CheckExactjp tPyList_GET_ITEM(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_ITEMjp tPyList_GET_SIZE(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_SIZEjp tPyList_GetItem(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_GetItemjp tPyList_GetSlice(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GetSlicejp t PyList_Insert(jm jn 9https://docs.python.org/3/c-api/list.html#c.PyList_Insertjp t PyList_New(jm jn 6https://docs.python.org/3/c-api/list.html#c.PyList_Newjp tPyList_Reverse(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_Reversejp tPyList_SET_ITEM(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEMjp tPyList_SetItem(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_SetItemjp tPyList_SetSlice(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlicejp t PyList_Size(jm jn 7https://docs.python.org/3/c-api/list.html#c.PyList_Sizejp t PyList_Sort(jm jn 7https://docs.python.org/3/c-api/list.html#c.PyList_Sortjp tPyLong_AsDouble(jm jn ;https://docs.python.org/3/c-api/long.html#c.PyLong_AsDoublejp t PyLong_AsLong(jm jn 9https://docs.python.org/3/c-api/long.html#c.PyLong_AsLongjp tPyLong_AsLongAndOverflow(jm jn Dhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongAndOverflowjp tPyLong_AsLongLong(jm jn =https://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongjp tPyLong_AsLongLongAndOverflow(jm jn Hhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongAndOverflowjp tPyLong_AsSize_t(jm jn ;https://docs.python.org/3/c-api/long.html#c.PyLong_AsSize_tjp tPyLong_AsSsize_t(jm jn https://docs.python.org/3/c-api/long.html#c.PyLong_FromSsize_tjp tPyLong_FromString(jm jn =https://docs.python.org/3/c-api/long.html#c.PyLong_FromStringjp tPyLong_FromUnicodeObject(jm jn Dhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObjectjp tPyLong_FromUnsignedLong(jm jn Chttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongjp tPyLong_FromUnsignedLongLong(jm jn Ghttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongLongjp tPyLong_FromVoidPtr(jm jn >https://docs.python.org/3/c-api/long.html#c.PyLong_FromVoidPtrjp tPyMapping_Check(jm jn >https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Checkjp tPyMapping_DelItem(jm jn @https://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemjp tPyMapping_DelItemString(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemStringjp tPyMapping_GetItemString(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemStringjp tPyMapping_HasKey(jm jn ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyjp tPyMapping_HasKeyString(jm jn Ehttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringjp tPyMapping_Items(jm jn >https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Itemsjp tPyMapping_Keys(jm jn =https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Keysjp tPyMapping_Length(jm jn ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Lengthjp tPyMapping_SetItemString(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemStringjp tPyMapping_Size(jm jn =https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Sizejp tPyMapping_Values(jm jn ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Valuesjp t PyMarshal_ReadLastObjectFromFile(jm jn Ohttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLastObjectFromFilejp tPyMarshal_ReadLongFromFile(jm jn Ihttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLongFromFilejp tPyMarshal_ReadObjectFromFile(jm jn Khttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromFilejp tPyMarshal_ReadObjectFromString(jm jn Mhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromStringjp tPyMarshal_ReadShortFromFile(jm jn Jhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadShortFromFilejp tPyMarshal_WriteLongToFile(jm jn Hhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFilejp tPyMarshal_WriteObjectToFile(jm jn Jhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFilejp tPyMarshal_WriteObjectToString(jm jn Lhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToStringjp t PyMem_Calloc(jm jn :https://docs.python.org/3/c-api/memory.html#c.PyMem_Callocjp t PyMem_Del(jm jn 7https://docs.python.org/3/c-api/memory.html#c.PyMem_Deljp t PyMem_Free(jm jn 8https://docs.python.org/3/c-api/memory.html#c.PyMem_Freejp tPyMem_GetAllocator(jm jn @https://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocatorjp t PyMem_Malloc(jm jn :https://docs.python.org/3/c-api/memory.html#c.PyMem_Mallocjp tPyMem_RawCalloc(jm jn =https://docs.python.org/3/c-api/memory.html#c.PyMem_RawCallocjp t PyMem_RawFree(jm jn ;https://docs.python.org/3/c-api/memory.html#c.PyMem_RawFreejp tPyMem_RawMalloc(jm jn =https://docs.python.org/3/c-api/memory.html#c.PyMem_RawMallocjp tPyMem_RawRealloc(jm jn >https://docs.python.org/3/c-api/memory.html#c.PyMem_RawReallocjp t PyMem_Realloc(jm jn ;https://docs.python.org/3/c-api/memory.html#c.PyMem_Reallocjp tPyMem_SetAllocator(jm jn @https://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocatorjp tPyMem_SetupDebugHooks(jm jn Chttps://docs.python.org/3/c-api/memory.html#c.PyMem_SetupDebugHooksjp tPyMember_GetOne(jm jn Ahttps://docs.python.org/3/c-api/structures.html#c.PyMember_GetOnejp tPyMember_SetOne(jm jn Ahttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOnejp tPyMemoryView_Check(jm jn Dhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_Checkjp tPyMemoryView_FromBuffer(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromBufferjp tPyMemoryView_FromMemory(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemoryjp tPyMemoryView_FromObject(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromObjectjp tPyMemoryView_GET_BASE(jm jn Ghttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BASEjp tPyMemoryView_GET_BUFFER(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BUFFERjp tPyMemoryView_GetContiguous(jm jn Lhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguousjp tPyMethod_Check(jm jn https://docs.python.org/3/c-api/module.html#c.PyModuleDef_Initjp tPyModule_AddFunctions(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_AddFunctionsjp tPyModule_AddIntConstant(jm jn Ehttps://docs.python.org/3/c-api/module.html#c.PyModule_AddIntConstantjp tPyModule_AddObject(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectjp tPyModule_AddObjectRef(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectRefjp tPyModule_AddStringConstant(jm jn Hhttps://docs.python.org/3/c-api/module.html#c.PyModule_AddStringConstantjp tPyModule_AddType(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_AddTypejp tPyModule_Check(jm jn https://docs.python.org/3/c-api/module.html#c.PyModule_Create2jp tPyModule_ExecDef(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_ExecDefjp tPyModule_FromDefAndSpec(jm jn Ehttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpecjp tPyModule_FromDefAndSpec2(jm jn Fhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2jp tPyModule_GetDef(jm jn =https://docs.python.org/3/c-api/module.html#c.PyModule_GetDefjp tPyModule_GetDict(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_GetDictjp tPyModule_GetFilename(jm jn Bhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenamejp tPyModule_GetFilenameObject(jm jn Hhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameObjectjp tPyModule_GetName(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_GetNamejp tPyModule_GetNameObject(jm jn Dhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetNameObjectjp tPyModule_GetState(jm jn ?https://docs.python.org/3/c-api/module.html#c.PyModule_GetStatejp t PyModule_New(jm jn :https://docs.python.org/3/c-api/module.html#c.PyModule_Newjp tPyModule_NewObject(jm 0jn @https://docs.python.org/3/c-api/module.html#c.PyModule_NewObjectjp tPyModule_SetDocString(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_SetDocStringjp tPyNumber_Absolute(jm jn ?https://docs.python.org/3/c-api/number.html#c.PyNumber_Absolutejp t PyNumber_Add(jm jn :https://docs.python.org/3/c-api/number.html#c.PyNumber_Addjp t PyNumber_And(jm jn :https://docs.python.org/3/c-api/number.html#c.PyNumber_Andjp tPyNumber_AsSsize_t(jm jn @https://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_tjp tPyNumber_Check(jm jn https://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmpjp tPyOS_string_to_double(jm jn Ghttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_doublejp t PyOS_strnicmp(jm jn ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmpjp tPyOS_vsnprintf(jm jn @https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintfjp tPyObject_ASCII(jm jn https://docs.python.org/3/c-api/allocation.html#c.PyObject_Deljp tPyObject_DelAttr(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrjp tPyObject_DelAttrString(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrStringjp tPyObject_DelItem(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_DelItemjp t PyObject_Dir(jm jn :https://docs.python.org/3/c-api/object.html#c.PyObject_Dirjp tPyObject_Format(jm jn =https://docs.python.org/3/c-api/object.html#c.PyObject_Formatjp t PyObject_Free(jm jn ;https://docs.python.org/3/c-api/memory.html#c.PyObject_Freejp tPyObject_GC_Del(jm jn @https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Deljp tPyObject_GC_IsFinalized(jm jn Hhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsFinalizedjp tPyObject_GC_IsTracked(jm jn Fhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsTrackedjp tPyObject_GC_Resize(jm jn Chttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Resizejp tPyObject_GC_Track(jm jn Bhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Trackjp tPyObject_GC_UnTrack(jm jn Dhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_UnTrackjp tPyObject_GenericGetAttr(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttrjp tPyObject_GenericGetDict(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetDictjp tPyObject_GenericSetAttr(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttrjp tPyObject_GenericSetDict(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDictjp tPyObject_GetAIter(jm jn ?https://docs.python.org/3/c-api/object.html#c.PyObject_GetAIterjp tPyObject_GetArenaAllocator(jm jn Hhttps://docs.python.org/3/c-api/memory.html#c.PyObject_GetArenaAllocatorjp tPyObject_GetAttr(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrjp tPyObject_GetAttrString(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrStringjp tPyObject_GetBuffer(jm jn @https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBufferjp tPyObject_GetItem(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetItemjp tPyObject_GetIter(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetIterjp tPyObject_HasAttr(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrjp tPyObject_HasAttrString(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringjp t PyObject_Hash(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Hashjp tPyObject_HashNotImplemented(jm jn Ihttps://docs.python.org/3/c-api/object.html#c.PyObject_HashNotImplementedjp tPyObject_IS_GC(jm jn ?https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_IS_GCjp t PyObject_Init(jm jn ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_Initjp tPyObject_InitVar(jm jn Bhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVarjp tPyObject_IsInstance(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_IsInstancejp tPyObject_IsSubclass(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclassjp tPyObject_IsTrue(jm jn =https://docs.python.org/3/c-api/object.html#c.PyObject_IsTruejp tPyObject_Length(jm jn =https://docs.python.org/3/c-api/object.html#c.PyObject_Lengthjp tPyObject_LengthHint(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_LengthHintjp tPyObject_Malloc(jm jn =https://docs.python.org/3/c-api/memory.html#c.PyObject_Mallocjp t PyObject_Not(jm jn :https://docs.python.org/3/c-api/object.html#c.PyObject_Notjp tPyObject_Print(jm jn https://docs.python.org/3/c-api/memory.html#c.PyObject_Reallocjp t PyObject_Repr(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Reprjp tPyObject_RichCompare(jm jn Bhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichComparejp tPyObject_RichCompareBool(jm jn Fhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBooljp tPyObject_SetArenaAllocator(jm jn Hhttps://docs.python.org/3/c-api/memory.html#c.PyObject_SetArenaAllocatorjp tPyObject_SetAttr(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrjp tPyObject_SetAttrString(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrStringjp tPyObject_SetItem(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetItemjp t PyObject_Size(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Sizejp t PyObject_Str(jm jn :https://docs.python.org/3/c-api/object.html#c.PyObject_Strjp t PyObject_Type(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Typejp tPyObject_TypeCheck(jm jn @https://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheckjp tPyObject_Vectorcall(jm jn ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcalljp tPyObject_VectorcallDict(jm jn Chttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDictjp tPyObject_VectorcallMethod(jm jn Ehttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethodjp tPyPreConfig_InitIsolatedConfig(jm jn Qhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitIsolatedConfigjp tPyPreConfig_InitPythonConfig(jm jn Ohttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitPythonConfigjp t PyRun_AnyFile(jm jn =https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFilejp tPyRun_AnyFileEx(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExjp tPyRun_AnyFileExFlags(jm jn Dhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlagsjp tPyRun_AnyFileFlags(jm jn Bhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlagsjp t PyRun_File(jm jn :https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_Filejp t PyRun_FileEx(jm jn https://docs.python.org/3/c-api/init_config.html#c.PyStatus_Okjp tPyStructSequence_GET_ITEM(jm jn Fhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GET_ITEMjp tPyStructSequence_GetItem(jm jn Ehttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GetItemjp tPyStructSequence_InitType(jm jn Fhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitTypejp tPyStructSequence_InitType2(jm jn Ghttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitType2jp tPyStructSequence_New(jm jn Ahttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Newjp tPyStructSequence_NewType(jm jn Ehttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_NewTypejp tPyStructSequence_SET_ITEM(jm jn Fhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SET_ITEMjp tPyStructSequence_SetItem(jm jn Ehttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SetItemjp tPySys_AddAuditHook(jm jn =https://docs.python.org/3/c-api/sys.html#c.PySys_AddAuditHookjp tPySys_AddWarnOption(jm jn >https://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionjp tPySys_AddWarnOptionUnicode(jm jn Ehttps://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionUnicodejp tPySys_AddXOption(jm jn ;https://docs.python.org/3/c-api/sys.html#c.PySys_AddXOptionjp t PySys_Audit(jm jn 6https://docs.python.org/3/c-api/sys.html#c.PySys_Auditjp tPySys_FormatStderr(jm jn =https://docs.python.org/3/c-api/sys.html#c.PySys_FormatStderrjp tPySys_FormatStdout(jm jn =https://docs.python.org/3/c-api/sys.html#c.PySys_FormatStdoutjp tPySys_GetObject(jm jn :https://docs.python.org/3/c-api/sys.html#c.PySys_GetObjectjp tPySys_GetXOptions(jm jn https://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_Checkjp tPyTZInfo_CheckExact(jm jn Chttps://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckExactjp tPyThreadState_Clear(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThreadState_Clearjp tPyThreadState_Delete(jm jn @https://docs.python.org/3/c-api/init.html#c.PyThreadState_Deletejp tPyThreadState_DeleteCurrent(jm jn Ghttps://docs.python.org/3/c-api/init.html#c.PyThreadState_DeleteCurrentjp tPyThreadState_EnterTracing(jm jn Fhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_EnterTracingjp tPyThreadState_Get(jm jn =https://docs.python.org/3/c-api/init.html#c.PyThreadState_Getjp tPyThreadState_GetDict(jm jn Ahttps://docs.python.org/3/c-api/init.html#c.PyThreadState_GetDictjp tPyThreadState_GetFrame(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_GetFramejp tPyThreadState_GetID(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThreadState_GetIDjp tPyThreadState_GetInterpreter(jm jn Hhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_GetInterpreterjp tPyThreadState_LeaveTracing(jm jn Fhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_LeaveTracingjp tPyThreadState_New(jm jn =https://docs.python.org/3/c-api/init.html#c.PyThreadState_Newjp tPyThreadState_Next(jm jn >https://docs.python.org/3/c-api/init.html#c.PyThreadState_Nextjp tPyThreadState_SetAsyncExc(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyThreadState_SetAsyncExcjp tPyThreadState_Swap(jm jn >https://docs.python.org/3/c-api/init.html#c.PyThreadState_Swapjp tPyThread_ReInitTLS(jm jn >https://docs.python.org/3/c-api/init.html#c.PyThread_ReInitTLSjp tPyThread_create_key(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThread_create_keyjp tPyThread_delete_key(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThread_delete_keyjp tPyThread_delete_key_value(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyThread_delete_key_valuejp tPyThread_get_key_value(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyThread_get_key_valuejp tPyThread_set_key_value(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyThread_set_key_valuejp tPyThread_tss_alloc(jm jn >https://docs.python.org/3/c-api/init.html#c.PyThread_tss_allocjp tPyThread_tss_create(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThread_tss_createjp tPyThread_tss_delete(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThread_tss_deletejp tPyThread_tss_free(jm jn =https://docs.python.org/3/c-api/init.html#c.PyThread_tss_freejp tPyThread_tss_get(jm jn https://docs.python.org/3/c-api/type.html#c.PyType_GetQualNamejp tPyType_GetSlot(jm jn :https://docs.python.org/3/c-api/type.html#c.PyType_GetSlotjp tPyType_HasFeature(jm jn =https://docs.python.org/3/c-api/type.html#c.PyType_HasFeaturejp t PyType_IS_GC(jm jn 8https://docs.python.org/3/c-api/type.html#c.PyType_IS_GCjp tPyType_IsSubtype(jm jn https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Checkjp tPyUnicode_CheckExact(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckExactjp tPyUnicode_Compare(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Comparejp t PyUnicode_CompareWithASCIIString(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIStringjp tPyUnicode_Concat(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Concatjp tPyUnicode_Contains(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Containsjp tPyUnicode_CopyCharacters(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersjp tPyUnicode_Count(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Countjp tPyUnicode_DATA(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DATAjp tPyUnicode_Decode(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decodejp tPyUnicode_DecodeASCII(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCIIjp tPyUnicode_DecodeCharmap(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmapjp tPyUnicode_DecodeFSDefault(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultjp t PyUnicode_DecodeFSDefaultAndSize(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSizejp tPyUnicode_DecodeLatin1(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1jp tPyUnicode_DecodeLocale(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocalejp tPyUnicode_DecodeLocaleAndSize(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSizejp tPyUnicode_DecodeMBCS(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSjp tPyUnicode_DecodeMBCSStateful(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStatefuljp t PyUnicode_DecodeRawUnicodeEscape(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscapejp tPyUnicode_DecodeUTF16(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16jp tPyUnicode_DecodeUTF16Stateful(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Statefuljp tPyUnicode_DecodeUTF32(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32jp tPyUnicode_DecodeUTF32Stateful(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Statefuljp tPyUnicode_DecodeUTF7(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7jp tPyUnicode_DecodeUTF7Stateful(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Statefuljp tPyUnicode_DecodeUTF8(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8jp tPyUnicode_DecodeUTF8Stateful(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Statefuljp tPyUnicode_DecodeUnicodeEscape(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscapejp tPyUnicode_EncodeCodePage(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePagejp tPyUnicode_EncodeFSDefault(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeFSDefaultjp tPyUnicode_EncodeLocale(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocalejp tPyUnicode_FSConverter(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverterjp tPyUnicode_FSDecoder(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoderjp tPyUnicode_Fill(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Filljp tPyUnicode_Find(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Findjp tPyUnicode_FindChar(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharjp tPyUnicode_Format(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Formatjp tPyUnicode_FromEncodedObject(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObjectjp tPyUnicode_FromFormat(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatjp tPyUnicode_FromFormatV(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatVjp tPyUnicode_FromKindAndData(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndDatajp tPyUnicode_FromObject(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromObjectjp tPyUnicode_FromString(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringjp tPyUnicode_FromStringAndSize(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSizejp tPyUnicode_FromUnicode(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromUnicodejp tPyUnicode_FromWideChar(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideCharjp tPyUnicode_GET_DATA_SIZE(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_DATA_SIZEjp tPyUnicode_GET_LENGTH(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_LENGTHjp tPyUnicode_GET_SIZE(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_SIZEjp tPyUnicode_GetLength(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetLengthjp tPyUnicode_GetSize(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetSizejp tPyUnicode_InternFromString(jm jn Ihttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternFromStringjp tPyUnicode_InternInPlace(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternInPlacejp tPyUnicode_IsIdentifier(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IsIdentifierjp tPyUnicode_Join(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Joinjp tPyUnicode_KIND(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_KINDjp tPyUnicode_MAX_CHAR_VALUE(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_MAX_CHAR_VALUEjp t PyUnicode_New(jm jn https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READYjp tPyUnicode_READ_CHAR(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHARjp tPyUnicode_ReadChar(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadCharjp tPyUnicode_Replace(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replacejp tPyUnicode_RichCompare(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichComparejp tPyUnicode_Split(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitjp tPyUnicode_Splitlines(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitlinesjp tPyUnicode_Substring(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substringjp tPyUnicode_Tailmatch(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatchjp tPyUnicode_Translate(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translatejp tPyUnicode_WRITE(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITEjp tPyUnicode_WriteChar(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteCharjp tPyVectorcall_Call(jm jn =https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Calljp tPyVectorcall_Function(jm jn Ahttps://docs.python.org/3/c-api/call.html#c.PyVectorcall_Functionjp tPyVectorcall_NARGS(jm jn >https://docs.python.org/3/c-api/call.html#c.PyVectorcall_NARGSjp tPyWeakref_Check(jm jn >https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_Checkjp tPyWeakref_CheckProxy(jm jn Chttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckProxyjp tPyWeakref_CheckRef(jm jn Ahttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRefjp tPyWeakref_GET_OBJECT(jm jn Chttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GET_OBJECTjp tPyWeakref_GetObject(jm jn Bhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetObjectjp tPyWeakref_NewProxy(jm jn Ahttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxyjp tPyWeakref_NewRef(jm jn ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRefjp t(PyWideStringList.PyWideStringList_Append(jm jn [https://docs.python.org/3/c-api/init_config.html#c.PyWideStringList.PyWideStringList_Appendjp t(PyWideStringList.PyWideStringList_Insert(jm jn [https://docs.python.org/3/c-api/init_config.html#c.PyWideStringList.PyWideStringList_Insertjp t PyWrapper_New(jm jn ?https://docs.python.org/3/c-api/descriptor.html#c.PyWrapper_Newjp tPy_AddPendingCall(jm jn =https://docs.python.org/3/c-api/init.html#c.Py_AddPendingCalljp t Py_AtExit(jm jn 4https://docs.python.org/3/c-api/sys.html#c.Py_AtExitjp t Py_BuildValue(jm jn 8https://docs.python.org/3/c-api/arg.html#c.Py_BuildValuejp t Py_BytesMain(jm jn https://docs.python.org/3/c-api/exceptions.html#c.Py_ReprEnterjp t Py_ReprLeave(jm jn >https://docs.python.org/3/c-api/exceptions.html#c.Py_ReprLeavejp t Py_RunMain(jm jn =https://docs.python.org/3/c-api/init_config.html#c.Py_RunMainjp t Py_SET_REFCNT(jm jn ?https://docs.python.org/3/c-api/structures.html#c.Py_SET_REFCNTjp t Py_SET_SIZE(jm jn =https://docs.python.org/3/c-api/structures.html#c.Py_SET_SIZEjp t Py_SET_TYPE(jm jn =https://docs.python.org/3/c-api/structures.html#c.Py_SET_TYPEjp tPy_SIZE(jm jn 9https://docs.python.org/3/c-api/structures.html#c.Py_SIZEjp t Py_SetPath(jm jn 6https://docs.python.org/3/c-api/init.html#c.Py_SetPathjp tPy_SetProgramName(jm jn =https://docs.python.org/3/c-api/init.html#c.Py_SetProgramNamejp tPy_SetPythonHome(jm jn https://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckExactjp tPyArg_Parse.args(jm jn 6https://docs.python.org/3/c-api/arg.html#c.PyArg_Parsejp tPyArg_Parse.format(jm jn 6https://docs.python.org/3/c-api/arg.html#c.PyArg_Parsejp tPyArg_ParseTuple.args(jm jn ;https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuplejp tPyArg_ParseTuple.format(jm jn ;https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuplejp t PyArg_ParseTupleAndKeywords.args(jm jn Fhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywordsjp t"PyArg_ParseTupleAndKeywords.format(jm jn Fhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywordsjp t$PyArg_ParseTupleAndKeywords.keywords(jm jn Fhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywordsjp tPyArg_ParseTupleAndKeywords.kw(jm jn Fhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywordsjp tPyArg_UnpackTuple.args(jm jn https://docs.python.org/3/c-api/buffer.html#c.PyBuffer_Releasejp tPyBuffer_SizeFromFormat.format(jm jn Ehttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_SizeFromFormatjp tPyBuffer_ToContiguous.buf(jm jn Chttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguousjp tPyBuffer_ToContiguous.len(jm jn Chttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguousjp tPyBuffer_ToContiguous.order(jm jn Chttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguousjp tPyBuffer_ToContiguous.src(jm jn Chttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguousjp tPyByteArray_AS_STRING.bytearray(jm jn Fhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AS_STRINGjp tPyByteArray_AsString.bytearray(jm jn Ehttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AsStringjp tPyByteArray_Check.o(jm jn Bhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Checkjp tPyByteArray_CheckExact.o(jm jn Ghttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckExactjp tPyByteArray_Concat.a(jm jn Chttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Concatjp tPyByteArray_Concat.b(jm jn Chttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Concatjp tPyByteArray_FromObject.o(jm jn Ghttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromObjectjp t!PyByteArray_FromStringAndSize.len(jm jn Nhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSizejp t$PyByteArray_FromStringAndSize.string(jm jn Nhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSizejp tPyByteArray_GET_SIZE.bytearray(jm jn Ehttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_GET_SIZEjp tPyByteArray_Resize.bytearray(jm jn Chttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Resizejp tPyByteArray_Resize.len(jm jn Chttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Resizejp tPyByteArray_Size.bytearray(jm jn Ahttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Sizejp tPyBytes_AS_STRING.string(jm jn >https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AS_STRINGjp tPyBytes_AsString.o(jm jn =https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringjp tPyBytes_AsStringAndSize.buffer(jm jn Dhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSizejp tPyBytes_AsStringAndSize.length(jm jn Dhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSizejp tPyBytes_AsStringAndSize.obj(jm jn Dhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSizejp tPyBytes_Check.o(jm jn :https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Checkjp tPyBytes_CheckExact.o(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckExactjp tPyBytes_Concat.bytes(jm jn ;https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Concatjp tPyBytes_Concat.newpart(jm jn ;https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Concatjp tPyBytes_ConcatAndDel.bytes(jm jn Ahttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDeljp tPyBytes_ConcatAndDel.newpart(jm jn Ahttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDeljp tPyBytes_FromFormat.format(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormat,jp tPyBytes_FromFormatV.format(jm jn @https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatVjp tPyBytes_FromFormatV.vargs(jm jn @https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatVjp tPyBytes_FromObject.o(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromObjectjp tPyBytes_FromString.v(jm jn ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringjp tPyBytes_FromStringAndSize.len(jm jn Fhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSizejp tPyBytes_FromStringAndSize.v(jm jn Fhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSizejp tPyBytes_GET_SIZE.o(jm jn =https://docs.python.org/3/c-api/bytes.html#c.PyBytes_GET_SIZEjp tPyBytes_Size.o(jm jn 9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Sizejp tPyCallIter_Check.op(jm jn @https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Checkjp tPyCallIter_New.callable(jm jn >https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Newjp tPyCallIter_New.sentinel(jm jn >https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Newjp tPyCallable_Check.o(jm jn https://docs.python.org/3/c-api/code.html#c.PyCode_GetCellvarsjp tPyCode_GetCode.co(jm jn :https://docs.python.org/3/c-api/code.html#c.PyCode_GetCodejp tPyCode_GetFreevars.co(jm jn >https://docs.python.org/3/c-api/code.html#c.PyCode_GetFreevarsjp tPyCode_GetNumFree.co(jm jn =https://docs.python.org/3/c-api/code.html#c.PyCode_GetNumFreejp tPyCode_GetVarnames.co(jm jn >https://docs.python.org/3/c-api/code.html#c.PyCode_GetVarnamesjp tPyCode_New.argcount(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.cellvars(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.code(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.consts(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.exceptiontable(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.filename(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.firstlineno(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.flags(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.freevars(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.kwonlyargcount(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.linetable(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.name(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.names(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.nlocals(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.qualname(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.stacksize(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_New.varnames(jm jn 6https://docs.python.org/3/c-api/code.html#c.PyCode_Newjp tPyCode_NewEmpty.filename(jm jn ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmptyjp tPyCode_NewEmpty.firstlineno(jm jn ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmptyjp tPyCode_NewEmpty.funcname(jm jn ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmptyjp t"PyCode_NewWithPosOnlyArgs.argcount(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t"PyCode_NewWithPosOnlyArgs.cellvars(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp tPyCode_NewWithPosOnlyArgs.code(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t PyCode_NewWithPosOnlyArgs.consts(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t(PyCode_NewWithPosOnlyArgs.exceptiontable(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t"PyCode_NewWithPosOnlyArgs.filename(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t%PyCode_NewWithPosOnlyArgs.firstlineno(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp tPyCode_NewWithPosOnlyArgs.flags(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t"PyCode_NewWithPosOnlyArgs.freevars(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t(PyCode_NewWithPosOnlyArgs.kwonlyargcount(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t#PyCode_NewWithPosOnlyArgs.linetable(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp tPyCode_NewWithPosOnlyArgs.name(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp tPyCode_NewWithPosOnlyArgs.names(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t!PyCode_NewWithPosOnlyArgs.nlocals(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t)PyCode_NewWithPosOnlyArgs.posonlyargcount(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t"PyCode_NewWithPosOnlyArgs.qualname(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t#PyCode_NewWithPosOnlyArgs.stacksize(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t"PyCode_NewWithPosOnlyArgs.varnames(jm jn Ehttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgsjp t"PyCodec_BackslashReplaceErrors.exc(jm jn Khttps://docs.python.org/3/c-api/codec.html#c.PyCodec_BackslashReplaceErrorsjp tPyCodec_Decode.encoding(jm jn ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decodejp tPyCodec_Decode.errors(jm jn ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decodejp tPyCodec_Decode.object(jm jn ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decodejp tPyCodec_Decoder.encoding(jm jn https://docs.python.org/3/c-api/complex.html#c.PyComplex_Checkjp tPyComplex_CheckExact.p(jm jn Chttps://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckExactjp tPyComplex_FromCComplex.v(jm jn Ehttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromCComplexjp tPyComplex_FromDoubles.imag(jm jn Dhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoublesjp tPyComplex_FromDoubles.real(jm jn Dhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoublesjp tPyComplex_ImagAsDouble.op(jm jn Ehttps://docs.python.org/3/c-api/complex.html#c.PyComplex_ImagAsDoublejp tPyComplex_RealAsDouble.op(jm jn Ehttps://docs.python.org/3/c-api/complex.html#c.PyComplex_RealAsDoublejp tPyConfig_Clear.config(jm jn Ahttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_Clearjp t"PyConfig_InitIsolatedConfig.config(jm jn Nhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitIsolatedConfigjp t PyConfig_InitPythonConfig.config(jm jn Lhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitPythonConfigjp tPyConfig_Read.config(jm jn @https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Readjp tPyConfig_SetArgv.argc(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgvjp tPyConfig_SetArgv.argv(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgvjp tPyConfig_SetArgv.config(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgvjp tPyConfig_SetBytesArgv.argc(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgvjp tPyConfig_SetBytesArgv.argv(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgvjp tPyConfig_SetBytesArgv.config(jm jn Hhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgvjp tPyConfig_SetBytesString.config(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesStringjp t"PyConfig_SetBytesString.config_str(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesStringjp tPyConfig_SetBytesString.str(jm jn Jhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesStringjp tPyConfig_SetString.config(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetStringjp tPyConfig_SetString.config_str(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetStringjp tPyConfig_SetString.str(jm jn Ehttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetStringjp t!PyConfig_SetWideStringList.config(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringListjp t PyConfig_SetWideStringList.items(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringListjp t!PyConfig_SetWideStringList.length(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringListjp tPyConfig_SetWideStringList.list(jm jn Mhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringListjp tPyContextToken_CheckExact.o(jm jn Lhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextToken_CheckExactjp tPyContextVar_CheckExact.o(jm jn Jhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_CheckExactjp tPyContextVar_Get.default_value(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Getjp tPyContextVar_Get.value(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Getjp tPyContextVar_Get.var(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Getjp tPyContextVar_New.def(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Newjp tPyContextVar_New.name(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Newjp tPyContextVar_Reset.token(jm jn Ehttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Resetjp tPyContextVar_Reset.var(jm jn Ehttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Resetjp tPyContextVar_Set.value(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Setjp tPyContextVar_Set.var(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Setjp tPyContext_CheckExact.o(jm jn Ghttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_CheckExactjp tPyContext_Copy.ctx(jm jn Ahttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Copyjp tPyContext_Enter.ctx(jm jn Bhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Enterjp tPyContext_Exit.ctx(jm jn Ahttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Exitjp tPyCoro_CheckExact.ob(jm jn =https://docs.python.org/3/c-api/coro.html#c.PyCoro_CheckExactjp tPyCoro_New.frame(jm jn 6https://docs.python.org/3/c-api/coro.html#c.PyCoro_Newjp tPyCoro_New.name(jm jn 6https://docs.python.org/3/c-api/coro.html#c.PyCoro_Newjp tPyCoro_New.qualname(jm jn 6https://docs.python.org/3/c-api/coro.html#c.PyCoro_Newjp tPyDateTime_Check.ob(jm jn @https://docs.python.org/3/c-api/datetime.html#c.PyDateTime_Checkjp tPyDateTime_CheckExact.ob(jm jn Ehttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckExactjp tPyDateTime_DATE_GET_FOLD.o(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_FOLDjp tPyDateTime_DATE_GET_HOUR.o(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_HOURjp t!PyDateTime_DATE_GET_MICROSECOND.o(jm jn Ohttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MICROSECONDjp tPyDateTime_DATE_GET_MINUTE.o(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MINUTEjp tPyDateTime_DATE_GET_SECOND.o(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_SECONDjp tPyDateTime_DATE_GET_TZINFO.o(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_TZINFOjp tPyDateTime_DELTA_GET_DAYS.o(jm jn Ihttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_DAYSjp t#PyDateTime_DELTA_GET_MICROSECONDS.o(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_MICROSECONDSjp tPyDateTime_DELTA_GET_SECONDS.o(jm jn Lhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_SECONDSjp tPyDateTime_FromDateAndTime.day(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp tPyDateTime_FromDateAndTime.hour(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp t!PyDateTime_FromDateAndTime.minute(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp t PyDateTime_FromDateAndTime.month(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp t!PyDateTime_FromDateAndTime.second(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp t"PyDateTime_FromDateAndTime.usecond(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp tPyDateTime_FromDateAndTime.year(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimejp t%PyDateTime_FromDateAndTimeAndFold.day(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp t&PyDateTime_FromDateAndTimeAndFold.fold(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp t&PyDateTime_FromDateAndTimeAndFold.hour(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp t(PyDateTime_FromDateAndTimeAndFold.minute(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp t'PyDateTime_FromDateAndTimeAndFold.month(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp t(PyDateTime_FromDateAndTimeAndFold.second(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp t)PyDateTime_FromDateAndTimeAndFold.usecond(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp t&PyDateTime_FromDateAndTimeAndFold.year(jm jn Qhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFoldjp tPyDateTime_FromTimestamp.args(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromTimestampjp tPyDateTime_GET_DAY.o(jm jn Bhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_DAYjp tPyDateTime_GET_MONTH.o(jm jn Dhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_MONTHjp tPyDateTime_GET_YEAR.o(jm jn Chttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_YEARjp tPyDateTime_TIME_GET_FOLD.o(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_FOLDjp tPyDateTime_TIME_GET_HOUR.o(jm jn Hhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_HOURjp t!PyDateTime_TIME_GET_MICROSECOND.o(jm jn Ohttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MICROSECONDjp tPyDateTime_TIME_GET_MINUTE.o(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MINUTEjp tPyDateTime_TIME_GET_SECOND.o(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_SECONDjp tPyDateTime_TIME_GET_TZINFO.o(jm jn Jhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_TZINFOjp tPyDate_Check.ob(jm jn https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Formatjp tPyErr_Format.format(jm jn >https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Formatjp tPyErr_FormatV.exception(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatVjp tPyErr_FormatV.format(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatVjp tPyErr_FormatV.vargs(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatVjp tPyErr_GetExcInfo.ptraceback(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfojp tPyErr_GetExcInfo.ptype(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfojp tPyErr_GetExcInfo.pvalue(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfojp tPyErr_GivenExceptionMatches.exc(jm jn Mhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatchesjp t!PyErr_GivenExceptionMatches.given(jm jn Mhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatchesjp tPyErr_NewException.base(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionjp tPyErr_NewException.dict(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionjp tPyErr_NewException.name(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionjp tPyErr_NewExceptionWithDoc.base(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDocjp tPyErr_NewExceptionWithDoc.dict(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDocjp tPyErr_NewExceptionWithDoc.doc(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDocjp tPyErr_NewExceptionWithDoc.name(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDocjp tPyErr_NormalizeException.exc(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeExceptionjp tPyErr_NormalizeException.tb(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeExceptionjp tPyErr_NormalizeException.val(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeExceptionjp tPyErr_PrintEx.set_sys_last_vars(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintExjp tPyErr_ResourceWarning.format(jm jn Ghttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarningjp tPyErr_ResourceWarning.source(jm jn Ghttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarningjp t!PyErr_ResourceWarning.stack_level(jm jn Ghttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarningjp tPyErr_Restore.traceback(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restorejp tPyErr_Restore.type(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restorejp tPyErr_Restore.value(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restorejp tPyErr_SetExcFromWindowsErr.ierr(jm jn Lhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrjp tPyErr_SetExcFromWindowsErr.type(jm jn Lhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrjp t/PyErr_SetExcFromWindowsErrWithFilename.filename(jm jn Xhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenamejp t+PyErr_SetExcFromWindowsErrWithFilename.ierr(jm jn Xhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenamejp t+PyErr_SetExcFromWindowsErrWithFilename.type(jm jn Xhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenamejp t5PyErr_SetExcFromWindowsErrWithFilenameObject.filename(jm jn ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectjp t1PyErr_SetExcFromWindowsErrWithFilenameObject.ierr(jm jn ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectjp t1PyErr_SetExcFromWindowsErrWithFilenameObject.type(jm jn ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectjp t6PyErr_SetExcFromWindowsErrWithFilenameObjects.filename(jm jn _https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectsjp t7PyErr_SetExcFromWindowsErrWithFilenameObjects.filename2(jm jn _https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectsjp t2PyErr_SetExcFromWindowsErrWithFilenameObjects.ierr(jm jn _https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectsjp t2PyErr_SetExcFromWindowsErrWithFilenameObjects.type(jm jn _https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjectsjp tPyErr_SetExcInfo.traceback(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfojp tPyErr_SetExcInfo.type(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfojp tPyErr_SetExcInfo.value(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfojp tPyErr_SetFromErrno.type(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnojp t'PyErr_SetFromErrnoWithFilename.filename(jm jn Phttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenamejp t#PyErr_SetFromErrnoWithFilename.type(jm jn Phttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenamejp t3PyErr_SetFromErrnoWithFilenameObject.filenameObject(jm jn Vhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectjp t)PyErr_SetFromErrnoWithFilenameObject.type(jm jn Vhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectjp t4PyErr_SetFromErrnoWithFilenameObjects.filenameObject(jm jn Whttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectsjp t5PyErr_SetFromErrnoWithFilenameObjects.filenameObject2(jm jn Whttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectsjp t*PyErr_SetFromErrnoWithFilenameObjects.type(jm jn Whttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjectsjp tPyErr_SetFromWindowsErr.ierr(jm jn Ihttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrjp t,PyErr_SetFromWindowsErrWithFilename.filename(jm jn Uhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilenamejp t(PyErr_SetFromWindowsErrWithFilename.ierr(jm jn Uhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilenamejp tPyErr_SetHandledException.exc(jm jn Khttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetHandledExceptionjp tPyErr_SetImportError.msg(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorjp tPyErr_SetImportError.name(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorjp tPyErr_SetImportError.path(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorjp t&PyErr_SetImportErrorSubclass.exception(jm jn Nhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclassjp t PyErr_SetImportErrorSubclass.msg(jm jn Nhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclassjp t!PyErr_SetImportErrorSubclass.name(jm jn Nhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclassjp t!PyErr_SetImportErrorSubclass.path(jm jn Nhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclassjp tPyErr_SetInterruptEx.signum(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterruptExjp tPyErr_SetNone.type(jm jn ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetNonejp tPyErr_SetObject.type(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObjectjp tPyErr_SetObject.value(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObjectjp tPyErr_SetString.message(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetStringjp tPyErr_SetString.type(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetStringjp tPyErr_SyntaxLocation.filename(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationjp tPyErr_SyntaxLocation.lineno(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationjp t!PyErr_SyntaxLocationEx.col_offset(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationExjp tPyErr_SyntaxLocationEx.filename(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationExjp tPyErr_SyntaxLocationEx.lineno(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationExjp t%PyErr_SyntaxLocationObject.col_offset(jm jn Lhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObjectjp t#PyErr_SyntaxLocationObject.filename(jm jn Lhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObjectjp t!PyErr_SyntaxLocationObject.lineno(jm jn Lhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObjectjp tPyErr_WarnEx.category(jm jn >https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExjp tPyErr_WarnEx.message(jm jn >https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExjp tPyErr_WarnEx.stack_level(jm jn >https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExjp tPyErr_WarnExplicit.category(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitjp tPyErr_WarnExplicit.filename(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitjp tPyErr_WarnExplicit.lineno(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitjp tPyErr_WarnExplicit.message(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitjp tPyErr_WarnExplicit.module(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitjp tPyErr_WarnExplicit.registry(jm jn Dhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitjp t!PyErr_WarnExplicitObject.category(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectjp t!PyErr_WarnExplicitObject.filename(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectjp tPyErr_WarnExplicitObject.lineno(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectjp t PyErr_WarnExplicitObject.message(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectjp tPyErr_WarnExplicitObject.module(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectjp t!PyErr_WarnExplicitObject.registry(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObjectjp tPyErr_WarnFormat.category(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormatjp tPyErr_WarnFormat.format(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormatjp tPyErr_WarnFormat.stack_level(jm jn Bhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormatjp tPyErr_WriteUnraisable.obj(jm jn Ghttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WriteUnraisablejp tPyEval_AcquireThread.tstate(jm jn @https://docs.python.org/3/c-api/init.html#c.PyEval_AcquireThreadjp tPyEval_EvalCode.co(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodejp tPyEval_EvalCode.globals(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodejp tPyEval_EvalCode.locals(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodejp tPyEval_EvalCodeEx.argcount(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.args(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.closure(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.co(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.defcount(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.defs(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.globals(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.kwcount(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.kwdefs(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.kws(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalCodeEx.locals(jm jn Ahttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeExjp tPyEval_EvalFrame.f(jm jn @https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFramejp tPyEval_EvalFrameEx.f(jm jn Bhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameExjp tPyEval_EvalFrameEx.throwflag(jm jn Bhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameExjp tPyEval_GetFuncDesc.func(jm jn Dhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncDescjp tPyEval_GetFuncName.func(jm jn Dhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncNamejp tPyEval_MergeCompilerFlags.cf(jm jn Ihttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_MergeCompilerFlagsjp tPyEval_ReleaseThread.tstate(jm jn @https://docs.python.org/3/c-api/init.html#c.PyEval_ReleaseThreadjp tPyEval_RestoreThread.tstate(jm jn @https://docs.python.org/3/c-api/init.html#c.PyEval_RestoreThreadjp tPyEval_SetProfile.func(jm jn =https://docs.python.org/3/c-api/init.html#c.PyEval_SetProfilejp tPyEval_SetProfile.obj(jm jn =https://docs.python.org/3/c-api/init.html#c.PyEval_SetProfilejp tPyEval_SetTrace.func(jm jn ;https://docs.python.org/3/c-api/init.html#c.PyEval_SetTracejp tPyEval_SetTrace.obj(jm jn ;https://docs.python.org/3/c-api/init.html#c.PyEval_SetTracejp tPyException_GetCause.ex(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetCausejp tPyException_GetContext.ex(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetContextjp tPyException_GetTraceback.ex(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetTracebackjp tPyException_SetCause.cause(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCausejp tPyException_SetCause.ex(jm jn Fhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCausejp tPyException_SetContext.ctx(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContextjp tPyException_SetContext.ex(jm jn Hhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContextjp tPyException_SetTraceback.ex(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTracebackjp tPyException_SetTraceback.tb(jm jn Jhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTracebackjp tPyFile_FromFd.buffering(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_FromFd.closefd(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_FromFd.encoding(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_FromFd.errors(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_FromFd.fd(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_FromFd.mode(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_FromFd.name(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_FromFd.newline(jm jn 9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFdjp tPyFile_GetLine.n(jm jn :https://docs.python.org/3/c-api/file.html#c.PyFile_GetLinejp tPyFile_GetLine.p(jm jn :https://docs.python.org/3/c-api/file.html#c.PyFile_GetLinejp tPyFile_SetOpenCodeHook.handler(jm jn Bhttps://docs.python.org/3/c-api/file.html#c.PyFile_SetOpenCodeHookjp tPyFile_WriteObject.flags(jm jn >https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObjectjp tPyFile_WriteObject.obj(jm jn >https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObjectjp tPyFile_WriteObject.p(jm jn >https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObjectjp tPyFile_WriteString.p(jm jn >https://docs.python.org/3/c-api/file.html#c.PyFile_WriteStringjp tPyFile_WriteString.s(jm jn >https://docs.python.org/3/c-api/file.html#c.PyFile_WriteStringjp tPyFloat_AS_DOUBLE.pyfloat(jm jn >https://docs.python.org/3/c-api/float.html#c.PyFloat_AS_DOUBLEjp tPyFloat_AsDouble.pyfloat(jm jn =https://docs.python.org/3/c-api/float.html#c.PyFloat_AsDoublejp tPyFloat_Check.p(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Checkjp tPyFloat_CheckExact.p(jm jn ?https://docs.python.org/3/c-api/float.html#c.PyFloat_CheckExactjp tPyFloat_FromDouble.v(jm jn ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromDoublejp tPyFloat_FromString.str(jm jn ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromStringjp tPyFloat_Pack2.le(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack2jp tPyFloat_Pack2.p(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack2jp tPyFloat_Pack2.x(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack2jp tPyFloat_Pack4.le(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack4jp tPyFloat_Pack4.p(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack4jp tPyFloat_Pack4.x(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack4jp tPyFloat_Pack8.le(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack8jp tPyFloat_Pack8.p(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack8jp tPyFloat_Pack8.x(jm jn :https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack8jp tPyFloat_Unpack2.le(jm jn https://docs.python.org/3/c-api/frame.html#c.PyFrame_GetLocalsjp tPyFrozenSet_Check.p(jm jn https://docs.python.org/3/c-api/function.html#c.PyFunction_Newjp tPyFunction_New.globals(jm jn >https://docs.python.org/3/c-api/function.html#c.PyFunction_Newjp tPyFunction_NewWithQualName.code(jm jn Jhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualNamejp t"PyFunction_NewWithQualName.globals(jm jn Jhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualNamejp t#PyFunction_NewWithQualName.qualname(jm jn Jhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualNamejp t%PyFunction_SetAnnotations.annotations(jm jn Ihttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotationsjp tPyFunction_SetAnnotations.op(jm jn Ihttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotationsjp tPyFunction_SetClosure.closure(jm jn Ehttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosurejp tPyFunction_SetClosure.op(jm jn Ehttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosurejp tPyFunction_SetDefaults.defaults(jm jn Fhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaultsjp tPyFunction_SetDefaults.op(jm jn Fhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaultsjp tPyGen_Check.ob(jm jn 6https://docs.python.org/3/c-api/gen.html#c.PyGen_Checkjp tPyGen_CheckExact.ob(jm jn ;https://docs.python.org/3/c-api/gen.html#c.PyGen_CheckExactjp tPyGen_New.frame(jm jn 4https://docs.python.org/3/c-api/gen.html#c.PyGen_Newjp tPyGen_NewWithQualName.frame(jm jn @https://docs.python.org/3/c-api/gen.html#c.PyGen_NewWithQualNamejp tPyGen_NewWithQualName.name(jm jn @https://docs.python.org/3/c-api/gen.html#c.PyGen_NewWithQualNamejp tPyGen_NewWithQualName.qualname(jm jn @https://docs.python.org/3/c-api/gen.html#c.PyGen_NewWithQualNamejp tPyImport_AddModule.name(jm jn @https://docs.python.org/3/c-api/import.html#c.PyImport_AddModulejp tPyImport_AddModuleObject.name(jm jn Fhttps://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleObjectjp tPyImport_AppendInittab.initfunc(jm jn Dhttps://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittabjp tPyImport_AppendInittab.name(jm jn Dhttps://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittabjp tPyImport_ExecCodeModule.co(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModulejp tPyImport_ExecCodeModule.name(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModulejp tPyImport_ExecCodeModuleEx.co(jm jn Ghttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleExjp tPyImport_ExecCodeModuleEx.name(jm jn Ghttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleExjp t"PyImport_ExecCodeModuleEx.pathname(jm jn Ghttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleExjp t PyImport_ExecCodeModuleObject.co(jm jn Khttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObjectjp t'PyImport_ExecCodeModuleObject.cpathname(jm jn Khttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObjectjp t"PyImport_ExecCodeModuleObject.name(jm jn Khttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObjectjp t&PyImport_ExecCodeModuleObject.pathname(jm jn Khttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObjectjp t'PyImport_ExecCodeModuleWithPathnames.co(jm jn Rhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnamesjp t.PyImport_ExecCodeModuleWithPathnames.cpathname(jm jn Rhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnamesjp t)PyImport_ExecCodeModuleWithPathnames.name(jm jn Rhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnamesjp t-PyImport_ExecCodeModuleWithPathnames.pathname(jm jn Rhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnamesjp tPyImport_ExtendInittab.newtab(jm jn Dhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExtendInittabjp tPyImport_GetImporter.path(jm jn Bhttps://docs.python.org/3/c-api/import.html#c.PyImport_GetImporterjp tPyImport_GetModule.name(jm jn @https://docs.python.org/3/c-api/import.html#c.PyImport_GetModulejp tPyImport_Import.name(jm jn =https://docs.python.org/3/c-api/import.html#c.PyImport_Importjp t PyImport_ImportFrozenModule.name(jm jn Ihttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModulejp t&PyImport_ImportFrozenModuleObject.name(jm jn Ohttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModuleObjectjp tPyImport_ImportModule.name(jm jn Chttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModulejp t PyImport_ImportModuleEx.fromlist(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleExjp tPyImport_ImportModuleEx.globals(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleExjp tPyImport_ImportModuleEx.locals(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleExjp tPyImport_ImportModuleEx.name(jm jn Ehttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleExjp t#PyImport_ImportModuleLevel.fromlist(jm jn Hhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLeveljp t"PyImport_ImportModuleLevel.globals(jm jn Hhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLeveljp t PyImport_ImportModuleLevel.level(jm jn Hhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLeveljp t!PyImport_ImportModuleLevel.locals(jm jn Hhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLeveljp tPyImport_ImportModuleLevel.name(jm jn Hhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLeveljp t)PyImport_ImportModuleLevelObject.fromlist(jm jn Nhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectjp t(PyImport_ImportModuleLevelObject.globals(jm jn Nhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectjp t&PyImport_ImportModuleLevelObject.level(jm jn Nhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectjp t'PyImport_ImportModuleLevelObject.locals(jm jn Nhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectjp t%PyImport_ImportModuleLevelObject.name(jm jn Nhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObjectjp t!PyImport_ImportModuleNoBlock.name(jm jn Jhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleNoBlockjp tPyImport_ReloadModule.m(jm jn Chttps://docs.python.org/3/c-api/import.html#c.PyImport_ReloadModulejp tPyIndex_Check.o(jm jn ;https://docs.python.org/3/c-api/number.html#c.PyIndex_Checkjp tPyInstanceMethod_Check.o(jm jn Dhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Checkjp tPyInstanceMethod_Function.im(jm jn Ghttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Functionjp t PyInstanceMethod_GET_FUNCTION.im(jm jn Khttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_GET_FUNCTIONjp tPyInstanceMethod_New.func(jm jn Bhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Newjp tPyInterpreterState_Clear.interp(jm jn Dhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Clearjp t PyInterpreterState_Delete.interp(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Deletejp t!PyInterpreterState_GetDict.interp(jm jn Fhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_GetDictjp tPyInterpreterState_GetID.interp(jm jn Dhttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_GetIDjp tPyInterpreterState_Next.interp(jm jn Chttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_Nextjp t$PyInterpreterState_ThreadHead.interp(jm jn Ihttps://docs.python.org/3/c-api/init.html#c.PyInterpreterState_ThreadHeadjp tPyIter_Check.o(jm jn 8https://docs.python.org/3/c-api/iter.html#c.PyIter_Checkjp t PyIter_Next.o(jm jn 7https://docs.python.org/3/c-api/iter.html#c.PyIter_Nextjp tPyIter_Send.arg(jm jn 7https://docs.python.org/3/c-api/iter.html#c.PyIter_Sendjp tPyIter_Send.iter(jm jn 7https://docs.python.org/3/c-api/iter.html#c.PyIter_Sendjp tPyIter_Send.presult(jm jn 7https://docs.python.org/3/c-api/iter.html#c.PyIter_Sendjp tPyList_Append.item(jm jn 9https://docs.python.org/3/c-api/list.html#c.PyList_Appendjp tPyList_Append.list(jm jn 9https://docs.python.org/3/c-api/list.html#c.PyList_Appendjp tPyList_AsTuple.list(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_AsTuplejp tPyList_Check.p(jm jn 8https://docs.python.org/3/c-api/list.html#c.PyList_Checkjp tPyList_CheckExact.p(jm jn =https://docs.python.org/3/c-api/list.html#c.PyList_CheckExactjp tPyList_GET_ITEM.i(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_ITEMjp tPyList_GET_ITEM.list(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_ITEMjp tPyList_GET_SIZE.list(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_SIZEjp tPyList_GetItem.index(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_GetItemjp tPyList_GetItem.list(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_GetItemjp tPyList_GetSlice.high(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GetSlicejp tPyList_GetSlice.list(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GetSlicejp tPyList_GetSlice.low(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_GetSlicejp tPyList_Insert.index(jm jn 9https://docs.python.org/3/c-api/list.html#c.PyList_Insertjp tPyList_Insert.item(jm jn 9https://docs.python.org/3/c-api/list.html#c.PyList_Insertjp tPyList_Insert.list(jm jn 9https://docs.python.org/3/c-api/list.html#c.PyList_Insertjp tPyList_New.len(jm jn 6https://docs.python.org/3/c-api/list.html#c.PyList_Newjp tPyList_Reverse.list(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_Reversejp tPyList_SET_ITEM.i(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEMjp tPyList_SET_ITEM.list(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEMjp tPyList_SET_ITEM.o(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEMjp tPyList_SetItem.index(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_SetItemjp tPyList_SetItem.item(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_SetItemjp tPyList_SetItem.list(jm jn :https://docs.python.org/3/c-api/list.html#c.PyList_SetItemjp tPyList_SetSlice.high(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlicejp tPyList_SetSlice.itemlist(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlicejp tPyList_SetSlice.list(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlicejp tPyList_SetSlice.low(jm jn ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlicejp tPyList_Size.list(jm jn 7https://docs.python.org/3/c-api/list.html#c.PyList_Sizejp tPyList_Sort.list(jm jn 7https://docs.python.org/3/c-api/list.html#c.PyList_Sortjp tPyLong_AsDouble.pylong(jm jn ;https://docs.python.org/3/c-api/long.html#c.PyLong_AsDoublejp tPyLong_AsLong.obj(jm jn 9https://docs.python.org/3/c-api/long.html#c.PyLong_AsLongjp tPyLong_AsLongAndOverflow.obj(jm jn Dhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongAndOverflow jp t!PyLong_AsLongAndOverflow.overflow(jm jn Dhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongAndOverflowjp tPyLong_AsLongLong.obj(jm jn =https://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongjp t PyLong_AsLongLongAndOverflow.obj(jm jn Hhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongAndOverflowjp t%PyLong_AsLongLongAndOverflow.overflow(jm jn Hhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongAndOverflowjp tPyLong_AsSize_t.pylong(jm jn ;https://docs.python.org/3/c-api/long.html#c.PyLong_AsSize_tjp tPyLong_AsSsize_t.pylong(jm jn https://docs.python.org/3/c-api/long.html#c.PyLong_FromSsize_tjp tPyLong_FromString.base(jm jn =https://docs.python.org/3/c-api/long.html#c.PyLong_FromStringjp tPyLong_FromString.pend(jm jn =https://docs.python.org/3/c-api/long.html#c.PyLong_FromStringjp tPyLong_FromString.str(jm jn =https://docs.python.org/3/c-api/long.html#c.PyLong_FromStringjp tPyLong_FromUnicodeObject.base(jm jn Dhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObjectjp tPyLong_FromUnicodeObject.u(jm jn Dhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObjectjp tPyLong_FromUnsignedLong.v(jm jn Chttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongjp tPyLong_FromUnsignedLongLong.v(jm jn Ghttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongLongjp tPyLong_FromVoidPtr.p(jm jn >https://docs.python.org/3/c-api/long.html#c.PyLong_FromVoidPtrjp tPyMapping_Check.o(jm jn >https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Checkjp tPyMapping_DelItem.key(jm jn @https://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemjp tPyMapping_DelItem.o(jm jn @https://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemjp tPyMapping_DelItemString.key(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemStringjp tPyMapping_DelItemString.o(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemStringjp tPyMapping_GetItemString.key(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemStringjp tPyMapping_GetItemString.o(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemStringjp tPyMapping_HasKey.key(jm jn ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyjp tPyMapping_HasKey.o(jm jn ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyjp tPyMapping_HasKeyString.key(jm jn Ehttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringjp tPyMapping_HasKeyString.o(jm jn Ehttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringjp tPyMapping_Items.o(jm jn >https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Itemsjp tPyMapping_Keys.o(jm jn =https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Keysjp tPyMapping_Length.o(jm jn ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Lengthjp tPyMapping_SetItemString.key(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemStringjp tPyMapping_SetItemString.o(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemStringjp tPyMapping_SetItemString.v(jm jn Fhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemStringjp tPyMapping_Size.o(jm jn =https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Sizejp tPyMapping_Values.o(jm jn ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Valuesjp t%PyMarshal_ReadLastObjectFromFile.file(jm jn Ohttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLastObjectFromFilejp tPyMarshal_ReadLongFromFile.file(jm jn Ihttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLongFromFilejp t!PyMarshal_ReadObjectFromFile.file(jm jn Khttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromFilejp t#PyMarshal_ReadObjectFromString.data(jm jn Mhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromStringjp t"PyMarshal_ReadObjectFromString.len(jm jn Mhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromStringjp t PyMarshal_ReadShortFromFile.file(jm jn Jhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadShortFromFilejp tPyMarshal_WriteLongToFile.file(jm jn Hhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFilejp tPyMarshal_WriteLongToFile.value(jm jn Hhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFilejp t!PyMarshal_WriteLongToFile.version(jm jn Hhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFilejp t PyMarshal_WriteObjectToFile.file(jm jn Jhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFilejp t!PyMarshal_WriteObjectToFile.value(jm jn Jhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFilejp t#PyMarshal_WriteObjectToFile.version(jm jn Jhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFilejp t#PyMarshal_WriteObjectToString.value(jm jn Lhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToStringjp t%PyMarshal_WriteObjectToString.version(jm jn Lhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToStringjp tPyMem_Calloc.elsize(jm jn :https://docs.python.org/3/c-api/memory.html#c.PyMem_Callocjp tPyMem_Calloc.nelem(jm jn :https://docs.python.org/3/c-api/memory.html#c.PyMem_Callocjp t PyMem_Del.p(jm jn 7https://docs.python.org/3/c-api/memory.html#c.PyMem_Deljp t PyMem_Free.p(jm jn 8https://docs.python.org/3/c-api/memory.html#c.PyMem_Freejp tPyMem_GetAllocator.allocator(jm jn @https://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocatorjp tPyMem_GetAllocator.domain(jm jn @https://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocatorjp tPyMem_Malloc.n(jm jn :https://docs.python.org/3/c-api/memory.html#c.PyMem_Mallocjp tPyMem_RawCalloc.elsize(jm jn =https://docs.python.org/3/c-api/memory.html#c.PyMem_RawCallocjp tPyMem_RawCalloc.nelem(jm jn =https://docs.python.org/3/c-api/memory.html#c.PyMem_RawCallocjp tPyMem_RawFree.p(jm jn ;https://docs.python.org/3/c-api/memory.html#c.PyMem_RawFreejp tPyMem_RawMalloc.n(jm jn =https://docs.python.org/3/c-api/memory.html#c.PyMem_RawMallocjp tPyMem_RawRealloc.n(jm jn >https://docs.python.org/3/c-api/memory.html#c.PyMem_RawReallocjp tPyMem_RawRealloc.p(jm jn >https://docs.python.org/3/c-api/memory.html#c.PyMem_RawReallocjp tPyMem_Realloc.n(jm jn ;https://docs.python.org/3/c-api/memory.html#c.PyMem_Reallocjp tPyMem_Realloc.p(jm jn ;https://docs.python.org/3/c-api/memory.html#c.PyMem_Reallocjp tPyMem_SetAllocator.allocator(jm jn @https://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocatorjp tPyMem_SetAllocator.domain(jm jn @https://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocatorjp tPyMember_GetOne.m(jm jn Ahttps://docs.python.org/3/c-api/structures.html#c.PyMember_GetOnejp tPyMember_GetOne.obj_addr(jm jn Ahttps://docs.python.org/3/c-api/structures.html#c.PyMember_GetOnejp tPyMember_SetOne.m(jm jn Ahttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOnejp tPyMember_SetOne.o(jm jn Ahttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOnejp tPyMember_SetOne.obj_addr(jm jn Ahttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOnejp tPyMemoryView_Check.obj(jm jn Dhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_Checkjp tPyMemoryView_FromBuffer.view(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromBufferjp tPyMemoryView_FromMemory.flags(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemoryjp tPyMemoryView_FromMemory.mem(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemoryjp tPyMemoryView_FromMemory.size(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemoryjp tPyMemoryView_FromObject.obj(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromObjectjp tPyMemoryView_GET_BASE.mview(jm jn Ghttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BASEjp tPyMemoryView_GET_BUFFER.mview(jm jn Ihttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BUFFERjp t%PyMemoryView_GetContiguous.buffertype(jm jn Lhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguousjp tPyMemoryView_GetContiguous.obj(jm jn Lhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguousjp t PyMemoryView_GetContiguous.order(jm jn Lhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguousjp tPyMethod_Check.o(jm jn https://docs.python.org/3/c-api/module.html#c.PyModuleDef_Initjp tPyModule_AddFunctions.functions(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_AddFunctionsjp tPyModule_AddFunctions.module(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_AddFunctionsjp tPyModule_AddIntConstant.module(jm jn Ehttps://docs.python.org/3/c-api/module.html#c.PyModule_AddIntConstantjp tPyModule_AddIntConstant.name(jm jn Ehttps://docs.python.org/3/c-api/module.html#c.PyModule_AddIntConstantjp tPyModule_AddIntConstant.value(jm jn Ehttps://docs.python.org/3/c-api/module.html#c.PyModule_AddIntConstantjp tPyModule_AddObject.module(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectjp tPyModule_AddObject.name(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectjp tPyModule_AddObject.value(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectjp tPyModule_AddObjectRef.module(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectRefjp tPyModule_AddObjectRef.name(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectRefjp tPyModule_AddObjectRef.value(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_AddObjectRefjp t!PyModule_AddStringConstant.module(jm jn Hhttps://docs.python.org/3/c-api/module.html#c.PyModule_AddStringConstantjp tPyModule_AddStringConstant.name(jm jn Hhttps://docs.python.org/3/c-api/module.html#c.PyModule_AddStringConstantjp t PyModule_AddStringConstant.value(jm jn Hhttps://docs.python.org/3/c-api/module.html#c.PyModule_AddStringConstantjp tPyModule_AddType.module(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_AddTypejp tPyModule_AddType.type(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_AddTypejp tPyModule_Check.p(jm jn https://docs.python.org/3/c-api/module.html#c.PyModule_Create2jp t#PyModule_Create2.module_api_version(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_Create2jp tPyModule_ExecDef.def(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_ExecDefjp tPyModule_ExecDef.module(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_ExecDefjp tPyModule_FromDefAndSpec.def(jm jn Ehttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpecjp tPyModule_FromDefAndSpec.spec(jm jn Ehttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpecjp tPyModule_FromDefAndSpec2.def(jm jn Fhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2jp t+PyModule_FromDefAndSpec2.module_api_version(jm jn Fhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2jp tPyModule_FromDefAndSpec2.spec(jm jn Fhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2jp tPyModule_GetDef.module(jm jn =https://docs.python.org/3/c-api/module.html#c.PyModule_GetDefjp tPyModule_GetDict.module(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_GetDictjp tPyModule_GetFilename.module(jm jn Bhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenamejp t!PyModule_GetFilenameObject.module(jm jn Hhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameObjectjp tPyModule_GetName.module(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModule_GetNamejp tPyModule_GetNameObject.module(jm jn Dhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetNameObjectjp tPyModule_GetState.module(jm jn ?https://docs.python.org/3/c-api/module.html#c.PyModule_GetStatejp tPyModule_New.name(jm jn :https://docs.python.org/3/c-api/module.html#c.PyModule_Newjp tPyModule_NewObject.name(jm jn @https://docs.python.org/3/c-api/module.html#c.PyModule_NewObjectjp tPyModule_SetDocString.docstring(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_SetDocStringjp tPyModule_SetDocString.module(jm jn Chttps://docs.python.org/3/c-api/module.html#c.PyModule_SetDocStringjp tPyNumber_Absolute.o(jm jn ?https://docs.python.org/3/c-api/number.html#c.PyNumber_Absolutejp tPyNumber_Add.o1(jm jn :https://docs.python.org/3/c-api/number.html#c.PyNumber_Addjp tPyNumber_Add.o2(jm jn :https://docs.python.org/3/c-api/number.html#c.PyNumber_Addjp tPyNumber_And.o1(jm jn :https://docs.python.org/3/c-api/number.html#c.PyNumber_Andjp tPyNumber_And.o2(jm jn :https://docs.python.org/3/c-api/number.html#c.PyNumber_Andjp tPyNumber_AsSsize_t.exc(jm jn @https://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_tjp tPyNumber_AsSsize_t.o(jm jn @https://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_tjp tPyNumber_Check.o(jm jn https://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmpjp tPyOS_stricmp.s2(jm jn >https://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmpjp tPyOS_string_to_double.endptr(jm jn Ghttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_doublejp t(PyOS_string_to_double.overflow_exception(jm jn Ghttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_doublejp tPyOS_string_to_double.s(jm jn Ghttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_doublejp tPyOS_strnicmp.s1(jm jn ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmpjp tPyOS_strnicmp.s2(jm jn ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmpjp tPyOS_strnicmp.size(jm jn ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmpjp tPyOS_vsnprintf.format(jm jn @https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintfjp tPyOS_vsnprintf.size(jm jn @https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintfjp tPyOS_vsnprintf.str(jm jn @https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintfjp tPyOS_vsnprintf.va(jm jn @https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintfjp tPyObject_ASCII.o(jm jn https://docs.python.org/3/c-api/allocation.html#c.PyObject_Deljp tPyObject_DelAttr.attr_name(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrjp tPyObject_DelAttr.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrjp t PyObject_DelAttrString.attr_name(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrStringjp tPyObject_DelAttrString.o(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrStringjp tPyObject_DelItem.key(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_DelItemjp tPyObject_DelItem.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_DelItemjp tPyObject_Dir.o(jm jn :https://docs.python.org/3/c-api/object.html#c.PyObject_Dirjp tPyObject_Format.format_spec(jm jn =https://docs.python.org/3/c-api/object.html#c.PyObject_Formatjp tPyObject_Format.obj(jm jn =https://docs.python.org/3/c-api/object.html#c.PyObject_Formatjp tPyObject_Free.p(jm jn ;https://docs.python.org/3/c-api/memory.html#c.PyObject_Freejp tPyObject_GC_Del.op(jm jn @https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Deljp tPyObject_GC_IsFinalized.op(jm jn Hhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsFinalizedjp tPyObject_GC_IsTracked.op(jm jn Fhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsTrackedjp tPyObject_GC_Resize.newsize(jm jn Chttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Resizejp tPyObject_GC_Resize.op(jm jn Chttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Resizejp tPyObject_GC_Track.op(jm jn Bhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Trackjp tPyObject_GC_UnTrack.op(jm jn Dhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_UnTrackjp tPyObject_GenericGetAttr.name(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttrjp tPyObject_GenericGetAttr.o(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttrjp tPyObject_GenericGetDict.context(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetDictjp tPyObject_GenericGetDict.o(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetDictjp tPyObject_GenericSetAttr.name(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttrjp tPyObject_GenericSetAttr.o(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttrjp tPyObject_GenericSetAttr.value(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttrjp tPyObject_GenericSetDict.context(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDictjp tPyObject_GenericSetDict.o(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDictjp tPyObject_GenericSetDict.value(jm jn Ehttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDictjp tPyObject_GetAIter.o(jm jn ?https://docs.python.org/3/c-api/object.html#c.PyObject_GetAIterjp t$PyObject_GetArenaAllocator.allocator(jm jn Hhttps://docs.python.org/3/c-api/memory.html#c.PyObject_GetArenaAllocatorjp tPyObject_GetAttr.attr_name(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrjp tPyObject_GetAttr.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrjp t PyObject_GetAttrString.attr_name(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrStringjp tPyObject_GetAttrString.o(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrStringjp tPyObject_GetBuffer.exporter(jm jn @https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBufferjp tPyObject_GetBuffer.flags(jm jn @https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBufferjp tPyObject_GetBuffer.view(jm jn @https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBufferjp tPyObject_GetItem.key(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetItemjp tPyObject_GetItem.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetItemjp tPyObject_GetIter.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_GetIterjp tPyObject_HasAttr.attr_name(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrjp tPyObject_HasAttr.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrjp t PyObject_HasAttrString.attr_name(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringjp tPyObject_HasAttrString.o(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringjp tPyObject_Hash.o(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Hashjp tPyObject_HashNotImplemented.o(jm jn Ihttps://docs.python.org/3/c-api/object.html#c.PyObject_HashNotImplementedjp tPyObject_IS_GC.obj(jm jn ?https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_IS_GCjp tPyObject_Init.op(jm jn ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_Initjp tPyObject_Init.type(jm jn ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_Initjp tPyObject_InitVar.op(jm jn Bhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVarjp tPyObject_InitVar.size(jm jn Bhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVarjp tPyObject_InitVar.type(jm jn Bhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVarjp tPyObject_IsInstance.cls(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_IsInstancejp tPyObject_IsInstance.inst(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_IsInstancejp tPyObject_IsSubclass.cls(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclassjp tPyObject_IsSubclass.derived(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclassjp tPyObject_IsTrue.o(jm jn =https://docs.python.org/3/c-api/object.html#c.PyObject_IsTruejp tPyObject_Length.o(jm jn =https://docs.python.org/3/c-api/object.html#c.PyObject_Lengthjp t PyObject_LengthHint.defaultvalue(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_LengthHintjp tPyObject_LengthHint.o(jm jn Ahttps://docs.python.org/3/c-api/object.html#c.PyObject_LengthHintjp tPyObject_Malloc.n(jm jn =https://docs.python.org/3/c-api/memory.html#c.PyObject_Mallocjp tPyObject_Not.o(jm jn :https://docs.python.org/3/c-api/object.html#c.PyObject_Notjp tPyObject_Print.flags(jm jn https://docs.python.org/3/c-api/memory.html#c.PyObject_Reallocjp tPyObject_Realloc.p(jm jn >https://docs.python.org/3/c-api/memory.html#c.PyObject_Reallocjp tPyObject_Repr.o(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Reprjp tPyObject_RichCompare.o1(jm jn Bhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichComparejp tPyObject_RichCompare.o2(jm jn Bhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichComparejp tPyObject_RichCompare.opid(jm jn Bhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichComparejp tPyObject_RichCompareBool.o1(jm jn Fhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBooljp tPyObject_RichCompareBool.o2(jm jn Fhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBooljp tPyObject_RichCompareBool.opid(jm jn Fhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBooljp t$PyObject_SetArenaAllocator.allocator(jm jn Hhttps://docs.python.org/3/c-api/memory.html#c.PyObject_SetArenaAllocatorjp tPyObject_SetAttr.attr_name(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrjp tPyObject_SetAttr.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrjp tPyObject_SetAttr.v(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrjp t PyObject_SetAttrString.attr_name(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrStringjp tPyObject_SetAttrString.o(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrStringjp tPyObject_SetAttrString.v(jm jn Dhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrStringjp tPyObject_SetItem.key(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetItemjp tPyObject_SetItem.o(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetItemjp tPyObject_SetItem.v(jm jn >https://docs.python.org/3/c-api/object.html#c.PyObject_SetItemjp tPyObject_Size.o(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Sizejp tPyObject_Str.o(jm jn :https://docs.python.org/3/c-api/object.html#c.PyObject_Strjp tPyObject_Type.o(jm jn ;https://docs.python.org/3/c-api/object.html#c.PyObject_Typejp tu(PyObject_TypeCheck.o(jm jn @https://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheckjp tPyObject_TypeCheck.type(jm jn @https://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheckjp tPyObject_Vectorcall.args(jm jn ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcalljp tPyObject_Vectorcall.callable(jm jn ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcalljp tPyObject_Vectorcall.kwnames(jm jn ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcalljp tPyObject_Vectorcall.nargsf(jm jn ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcalljp tPyObject_VectorcallDict.args(jm jn Chttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDictjp t PyObject_VectorcallDict.callable(jm jn Chttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDictjp tPyObject_VectorcallDict.kwdict(jm jn Chttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDictjp tPyObject_VectorcallDict.nargsf(jm jn Chttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDictjp tPyObject_VectorcallMethod.args(jm jn Ehttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethodjp t!PyObject_VectorcallMethod.kwnames(jm jn Ehttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethodjp tPyObject_VectorcallMethod.name(jm jn Ehttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethodjp t PyObject_VectorcallMethod.nargsf(jm jn Ehttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethodjp t(PyPreConfig_InitIsolatedConfig.preconfig(jm jn Qhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitIsolatedConfigjp t&PyPreConfig_InitPythonConfig.preconfig(jm jn Ohttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitPythonConfigjp tPyRun_AnyFile.filename(jm jn =https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFilejp tPyRun_AnyFile.fp(jm jn =https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFilejp tPyRun_AnyFileEx.closeit(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExjp tPyRun_AnyFileEx.filename(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExjp tPyRun_AnyFileEx.fp(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExjp tPyRun_AnyFileExFlags.closeit(jm jn Dhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlagsjp tPyRun_AnyFileExFlags.filename(jm jn Dhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlagsjp tPyRun_AnyFileExFlags.flags(jm jn Dhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlagsjp tPyRun_AnyFileExFlags.fp(jm jn Dhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlagsjp tPyRun_AnyFileFlags.filename(jm jn Bhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlagsjp tPyRun_AnyFileFlags.flags(jm jn Bhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlagsjp tPyRun_AnyFileFlags.fp(jm jn Bhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlagsjp tPyRun_File.filename(jm jn :https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_Filejp t PyRun_File.fp(jm jn :https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_Filejp tPyRun_File.globals(jm jn :https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_Filejp tPyRun_File.locals(jm jn :https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_Filejp tPyRun_File.start(jm jn :https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_Filejp tPyRun_FileEx.closeit(jm jn https://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionjp t"PySys_AddWarnOptionUnicode.unicode(jm jn Ehttps://docs.python.org/3/c-api/sys.html#c.PySys_AddWarnOptionUnicodejp tPySys_AddXOption.s(jm jn ;https://docs.python.org/3/c-api/sys.html#c.PySys_AddXOptionjp tPySys_Audit.event(jm jn 6https://docs.python.org/3/c-api/sys.html#c.PySys_Auditjp tPySys_Audit.format(jm jn 6https://docs.python.org/3/c-api/sys.html#c.PySys_Auditjp tPySys_FormatStderr.format(jm jn =https://docs.python.org/3/c-api/sys.html#c.PySys_FormatStderrjp tPySys_FormatStdout.format(jm jn =https://docs.python.org/3/c-api/sys.html#c.PySys_FormatStdoutjp tPySys_GetObject.name(jm jn :https://docs.python.org/3/c-api/sys.html#c.PySys_GetObjectjp tPySys_SetArgv.argc(jm jn 9https://docs.python.org/3/c-api/init.html#c.PySys_SetArgvjp tPySys_SetArgv.argv(jm jn 9https://docs.python.org/3/c-api/init.html#c.PySys_SetArgvjp tPySys_SetArgvEx.argc(jm jn ;https://docs.python.org/3/c-api/init.html#c.PySys_SetArgvExjp tPySys_SetArgvEx.argv(jm jn ;https://docs.python.org/3/c-api/init.html#c.PySys_SetArgvExjp tPySys_SetArgvEx.updatepath(jm jn ;https://docs.python.org/3/c-api/init.html#c.PySys_SetArgvExjp tPySys_SetObject.name(jm jn :https://docs.python.org/3/c-api/sys.html#c.PySys_SetObjectjp tPySys_SetObject.v(jm jn :https://docs.python.org/3/c-api/sys.html#c.PySys_SetObjectjp tPySys_SetPath.path(jm jn 8https://docs.python.org/3/c-api/sys.html#c.PySys_SetPathjp tPySys_WriteStderr.format(jm jn https://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_Checkjp tPyTZInfo_CheckExact.ob(jm jn Chttps://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckExactjp tPyThreadState_Clear.tstate(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThreadState_Clearjp tPyThreadState_Delete.tstate(jm jn @https://docs.python.org/3/c-api/init.html#c.PyThreadState_Deletejp t!PyThreadState_EnterTracing.tstate(jm jn Fhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_EnterTracingjp tPyThreadState_GetFrame.tstate(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_GetFramejp tPyThreadState_GetID.tstate(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThreadState_GetIDjp t#PyThreadState_GetInterpreter.tstate(jm jn Hhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_GetInterpreterjp t!PyThreadState_LeaveTracing.tstate(jm jn Fhttps://docs.python.org/3/c-api/init.html#c.PyThreadState_LeaveTracingjp tPyThreadState_New.interp(jm jn =https://docs.python.org/3/c-api/init.html#c.PyThreadState_Newjp tPyThreadState_Next.tstate(jm jn >https://docs.python.org/3/c-api/init.html#c.PyThreadState_Nextjp tPyThreadState_SetAsyncExc.exc(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyThreadState_SetAsyncExcjp tPyThreadState_SetAsyncExc.id(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyThreadState_SetAsyncExcjp tPyThreadState_Swap.tstate(jm jn >https://docs.python.org/3/c-api/init.html#c.PyThreadState_Swapjp tPyThread_delete_key.key(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThread_delete_keyjp tPyThread_delete_key_value.key(jm jn Ehttps://docs.python.org/3/c-api/init.html#c.PyThread_delete_key_valuejp tPyThread_get_key_value.key(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyThread_get_key_valuejp tPyThread_set_key_value.key(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyThread_set_key_valuejp tPyThread_set_key_value.value(jm jn Bhttps://docs.python.org/3/c-api/init.html#c.PyThread_set_key_valuejp tPyThread_tss_create.key(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThread_tss_createjp tPyThread_tss_delete.key(jm jn ?https://docs.python.org/3/c-api/init.html#c.PyThread_tss_deletejp tPyThread_tss_free.key(jm jn =https://docs.python.org/3/c-api/init.html#c.PyThread_tss_freejp tPyThread_tss_get.key(jm jn https://docs.python.org/3/c-api/type.html#c.PyType_GetQualNamejp tPyType_GetSlot.slot(jm jn :https://docs.python.org/3/c-api/type.html#c.PyType_GetSlotjp tPyType_GetSlot.type(jm jn :https://docs.python.org/3/c-api/type.html#c.PyType_GetSlotjp tPyType_HasFeature.feature(jm jn =https://docs.python.org/3/c-api/type.html#c.PyType_HasFeaturejp tPyType_HasFeature.o(jm jn =https://docs.python.org/3/c-api/type.html#c.PyType_HasFeaturejp tPyType_IS_GC.o(jm jn 8https://docs.python.org/3/c-api/type.html#c.PyType_IS_GCjp tPyType_IsSubtype.a(jm jn https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Checkjp tPyUnicode_CheckExact.o(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckExactjp tPyUnicode_Compare.left(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Comparejp tPyUnicode_Compare.right(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Comparejp t'PyUnicode_CompareWithASCIIString.string(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIStringjp t$PyUnicode_CompareWithASCIIString.uni(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIStringjp tPyUnicode_Concat.left(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Concatjp tPyUnicode_Concat.right(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Concatjp tPyUnicode_Contains.container(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Containsjp tPyUnicode_Contains.element(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Containsjp tPyUnicode_CopyCharacters.from(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersjp t#PyUnicode_CopyCharacters.from_start(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersjp t!PyUnicode_CopyCharacters.how_many(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersjp tPyUnicode_CopyCharacters.to(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersjp t!PyUnicode_CopyCharacters.to_start(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharactersjp tPyUnicode_Count.end(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Countjp tPyUnicode_Count.start(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Countjp tPyUnicode_Count.str(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Countjp tPyUnicode_Count.substr(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Countjp tPyUnicode_DATA.o(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DATAjp tPyUnicode_Decode.encoding(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decodejp tPyUnicode_Decode.errors(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decodejp tPyUnicode_Decode.s(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decodejp tPyUnicode_Decode.size(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decodejp tPyUnicode_DecodeASCII.errors(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCIIjp tPyUnicode_DecodeASCII.s(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCIIjp tPyUnicode_DecodeASCII.size(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCIIjp tPyUnicode_DecodeCharmap.data(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmapjp tPyUnicode_DecodeCharmap.errors(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmapjp tPyUnicode_DecodeCharmap.mapping(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmapjp tPyUnicode_DecodeCharmap.size(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmapjp tPyUnicode_DecodeFSDefault.s(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultjp t"PyUnicode_DecodeFSDefaultAndSize.s(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSizejp t%PyUnicode_DecodeFSDefaultAndSize.size(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSizejp tPyUnicode_DecodeLatin1.errors(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1jp tPyUnicode_DecodeLatin1.s(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1jp tPyUnicode_DecodeLatin1.size(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1jp tPyUnicode_DecodeLocale.errors(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocalejp tPyUnicode_DecodeLocale.str(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocalejp t$PyUnicode_DecodeLocaleAndSize.errors(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSizejp t!PyUnicode_DecodeLocaleAndSize.len(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSizejp t!PyUnicode_DecodeLocaleAndSize.str(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSizejp tPyUnicode_DecodeMBCS.errors(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSjp tPyUnicode_DecodeMBCS.s(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSjp tPyUnicode_DecodeMBCS.size(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSjp t%PyUnicode_DecodeMBCSStateful.consumed(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStatefuljp t#PyUnicode_DecodeMBCSStateful.errors(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStatefuljp tPyUnicode_DecodeMBCSStateful.s(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStatefuljp t!PyUnicode_DecodeMBCSStateful.size(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStatefuljp t'PyUnicode_DecodeRawUnicodeEscape.errors(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscapejp t"PyUnicode_DecodeRawUnicodeEscape.s(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscapejp t%PyUnicode_DecodeRawUnicodeEscape.size(jm jn Ohttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscapejp tPyUnicode_DecodeUTF16.byteorder(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16jp tPyUnicode_DecodeUTF16.errors(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16jp tPyUnicode_DecodeUTF16.s(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16jp tPyUnicode_DecodeUTF16.size(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16jp t'PyUnicode_DecodeUTF16Stateful.byteorder(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Statefuljp t&PyUnicode_DecodeUTF16Stateful.consumed(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Statefuljp t$PyUnicode_DecodeUTF16Stateful.errors(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Statefuljp tPyUnicode_DecodeUTF16Stateful.s(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Statefuljp t"PyUnicode_DecodeUTF16Stateful.size(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Statefuljp tPyUnicode_DecodeUTF32.byteorder(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32jp tPyUnicode_DecodeUTF32.errors(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32jp tPyUnicode_DecodeUTF32.s(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32jp tPyUnicode_DecodeUTF32.size(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32jp t'PyUnicode_DecodeUTF32Stateful.byteorder(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Statefuljp t&PyUnicode_DecodeUTF32Stateful.consumed(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Statefuljp t$PyUnicode_DecodeUTF32Stateful.errors(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Statefuljp tPyUnicode_DecodeUTF32Stateful.s(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Statefuljp t"PyUnicode_DecodeUTF32Stateful.size(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Statefuljp tPyUnicode_DecodeUTF7.errors(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7jp tPyUnicode_DecodeUTF7.s(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7jp tPyUnicode_DecodeUTF7.size(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7jp t%PyUnicode_DecodeUTF7Stateful.consumed(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Statefuljp t#PyUnicode_DecodeUTF7Stateful.errors(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Statefuljp tPyUnicode_DecodeUTF7Stateful.s(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Statefuljp t!PyUnicode_DecodeUTF7Stateful.size(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Statefuljp tPyUnicode_DecodeUTF8.errors(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8jp tPyUnicode_DecodeUTF8.s(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8jp tPyUnicode_DecodeUTF8.size(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8jp t%PyUnicode_DecodeUTF8Stateful.consumed(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Statefuljp t#PyUnicode_DecodeUTF8Stateful.errors(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Statefuljp tPyUnicode_DecodeUTF8Stateful.s(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Statefuljp t!PyUnicode_DecodeUTF8Stateful.size(jm jn Khttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Statefuljp t$PyUnicode_DecodeUnicodeEscape.errors(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscapejp tPyUnicode_DecodeUnicodeEscape.s(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscapejp t"PyUnicode_DecodeUnicodeEscape.size(jm jn Lhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscapejp t"PyUnicode_EncodeCodePage.code_page(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePagejp tPyUnicode_EncodeCodePage.errors(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePagejp t PyUnicode_EncodeCodePage.unicode(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePagejp t!PyUnicode_EncodeFSDefault.unicode(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeFSDefaultjp tPyUnicode_EncodeLocale.errors(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocalejp tPyUnicode_EncodeLocale.unicode(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocalejp tPyUnicode_FSConverter.obj(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverterjp tPyUnicode_FSConverter.result(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverterjp tPyUnicode_FSDecoder.obj(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoderjp tPyUnicode_FSDecoder.result(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoderjp tPyUnicode_Fill.fill_char(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Filljp tPyUnicode_Fill.length(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Filljp tPyUnicode_Fill.start(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Filljp tPyUnicode_Fill.unicode(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Filljp tPyUnicode_Find.direction(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Findjp tPyUnicode_Find.end(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Findjp tPyUnicode_Find.start(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Findjp tPyUnicode_Find.str(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Findjp tPyUnicode_Find.substr(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Findjp tPyUnicode_FindChar.ch(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharjp tPyUnicode_FindChar.direction(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharjp tPyUnicode_FindChar.end(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharjp tPyUnicode_FindChar.start(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharjp tPyUnicode_FindChar.str(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindCharjp tPyUnicode_Format.args(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Formatjp tPyUnicode_Format.format(jm jn ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Formatjp t$PyUnicode_FromEncodedObject.encoding(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObjectjp t"PyUnicode_FromEncodedObject.errors(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObjectjp tPyUnicode_FromEncodedObject.obj(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObjectjp tPyUnicode_FromFormat.format(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatjp tPyUnicode_FromFormatV.format(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatVjp tPyUnicode_FromFormatV.vargs(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatVjp t PyUnicode_FromKindAndData.buffer(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndDatajp tPyUnicode_FromKindAndData.kind(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndDatajp tPyUnicode_FromKindAndData.size(jm jn Hhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndDatajp tPyUnicode_FromObject.obj(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromObjectjp tPyUnicode_FromString.u(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringjp t PyUnicode_FromStringAndSize.size(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSizejp tPyUnicode_FromStringAndSize.u(jm jn Jhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSizejp tPyUnicode_FromUnicode.size(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromUnicodejp tPyUnicode_FromUnicode.u(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromUnicodejp tPyUnicode_FromWideChar.size(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideCharjp tPyUnicode_FromWideChar.w(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideCharjp tPyUnicode_GET_DATA_SIZE.o(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_DATA_SIZEjp tPyUnicode_GET_LENGTH.o(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_LENGTHjp tPyUnicode_GET_SIZE.o(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_SIZEjp tPyUnicode_GetLength.unicode(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetLengthjp tPyUnicode_GetSize.unicode(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetSizejp tPyUnicode_InternFromString.v(jm jn Ihttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternFromStringjp tPyUnicode_InternInPlace.string(jm jn Fhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternInPlacejp tPyUnicode_IsIdentifier.o(jm jn Ehttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IsIdentifierjp tPyUnicode_Join.separator(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Joinjp tPyUnicode_Join.seq(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Joinjp tPyUnicode_KIND.o(jm jn =https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_KINDjp tPyUnicode_MAX_CHAR_VALUE.o(jm jn Ghttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_MAX_CHAR_VALUEjp tPyUnicode_New.maxchar(jm jn https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READYjp tPyUnicode_READ_CHAR.index(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHARjp tPyUnicode_READ_CHAR.o(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHARjp tPyUnicode_ReadChar.index(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadCharjp tPyUnicode_ReadChar.unicode(jm jn Ahttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadCharjp tPyUnicode_Replace.maxcount(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replacejp tPyUnicode_Replace.replstr(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replacejp tPyUnicode_Replace.str(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replacejp tPyUnicode_Replace.substr(jm jn @https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replacejp tPyUnicode_RichCompare.left(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichComparejp tPyUnicode_RichCompare.op(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichComparejp tPyUnicode_RichCompare.right(jm jn Dhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichComparejp tPyUnicode_Split.maxsplit(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitjp tPyUnicode_Split.s(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitjp tPyUnicode_Split.sep(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitjp tPyUnicode_Splitlines.keepend(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitlinesjp tPyUnicode_Splitlines.s(jm jn Chttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitlinesjp tPyUnicode_Substring.end(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substringjp tPyUnicode_Substring.start(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substringjp tPyUnicode_Substring.str(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substringjp tPyUnicode_Tailmatch.direction(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatchjp tPyUnicode_Tailmatch.end(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatchjp tPyUnicode_Tailmatch.start(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatchjp tPyUnicode_Tailmatch.str(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatchjp tPyUnicode_Tailmatch.substr(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatchjp tPyUnicode_Translate.errors(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translatejp tPyUnicode_Translate.str(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translatejp tPyUnicode_Translate.table(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translatejp tPyUnicode_WRITE.data(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITEjp tPyUnicode_WRITE.index(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITEjp tPyUnicode_WRITE.kind(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITEjp tPyUnicode_WRITE.value(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITEjp tPyUnicode_WriteChar.character(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteCharjp tPyUnicode_WriteChar.index(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteCharjp tPyUnicode_WriteChar.unicode(jm jn Bhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteCharjp tPyVectorcall_Call.callable(jm jn =https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Calljp tPyVectorcall_Call.dict(jm jn =https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Calljp tPyVectorcall_Call.tuple(jm jn =https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Calljp tPyVectorcall_Function.op(jm jn Ahttps://docs.python.org/3/c-api/call.html#c.PyVectorcall_Functionjp tPyVectorcall_NARGS.nargsf(jm jn >https://docs.python.org/3/c-api/call.html#c.PyVectorcall_NARGSjp tPyWeakref_Check.ob(jm jn >https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_Checkjp tPyWeakref_CheckProxy.ob(jm jn Chttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckProxyjp tPyWeakref_CheckRef.ob(jm jn Ahttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRefjp tPyWeakref_GET_OBJECT.ref(jm jn Chttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GET_OBJECTjp tPyWeakref_GetObject.ref(jm jn Bhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetObjectjp tPyWeakref_NewProxy.callback(jm jn Ahttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxyjp tPyWeakref_NewProxy.ob(jm jn Ahttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxyjp tPyWeakref_NewRef.callback(jm jn ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRefjp tPyWeakref_NewRef.ob(jm jn ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRefjp t-PyWideStringList.PyWideStringList_Append.item(jm jn [https://docs.python.org/3/c-api/init_config.html#c.PyWideStringList.PyWideStringList_Appendjp t-PyWideStringList.PyWideStringList_Append.list(jm jn [https://docs.python.org/3/c-api/init_config.html#c.PyWideStringList.PyWideStringList_Appendjp t.PyWideStringList.PyWideStringList_Insert.index(jm jn [https://docs.python.org/3/c-api/init_config.html#c.PyWideStringList.PyWideStringList_Insertjp t-PyWideStringList.PyWideStringList_Insert.item(jm jn [https://docs.python.org/3/c-api/init_config.html#c.PyWideStringList.PyWideStringList_Insertjp t-PyWideStringList.PyWideStringList_Insert.list(jm jn [https://docs.python.org/3/c-api/init_config.html#c.PyWideStringList.PyWideStringList_Insertjp tPy_AddPendingCall.arg(jm jn =https://docs.python.org/3/c-api/init.html#c.Py_AddPendingCalljp tPy_AddPendingCall.func(jm jn =https://docs.python.org/3/c-api/init.html#c.Py_AddPendingCalljp tPy_AtExit.func(jm jn 4https://docs.python.org/3/c-api/sys.html#c.Py_AtExitjp tPy_BuildValue.format(jm jn 8https://docs.python.org/3/c-api/arg.html#c.Py_BuildValuejp tPy_BytesMain.argc(jm jn https://docs.python.org/3/c-api/exceptions.html#c.Py_ReprEnterjp tPy_ReprLeave.object(jm jn >https://docs.python.org/3/c-api/exceptions.html#c.Py_ReprLeavejp tPy_SET_REFCNT.o(jm jn ?https://docs.python.org/3/c-api/structures.html#c.Py_SET_REFCNTjp tPy_SET_REFCNT.refcnt(jm jn ?https://docs.python.org/3/c-api/structures.html#c.Py_SET_REFCNTjp t Py_SET_SIZE.o(jm jn =https://docs.python.org/3/c-api/structures.html#c.Py_SET_SIZEjp tPy_SET_SIZE.size(jm jn =https://docs.python.org/3/c-api/structures.html#c.Py_SET_SIZEjp t Py_SET_TYPE.o(jm jn =https://docs.python.org/3/c-api/structures.html#c.Py_SET_TYPEjp tPy_SET_TYPE.type(jm jn =https://docs.python.org/3/c-api/structures.html#c.Py_SET_TYPEjp t Py_SIZE.o(jm jn 9https://docs.python.org/3/c-api/structures.html#c.Py_SIZEjp tPy_SetProgramName.name(jm jn =https://docs.python.org/3/c-api/init.html#c.Py_SetProgramNamejp tPy_SetPythonHome.home(jm jn https://docs.python.org/3/c-api/complex.html#c.PyComplexObjectjp tPyConfig(jm jn ;https://docs.python.org/3/c-api/init_config.html#c.PyConfigjp t PyContext(jm jn https://docs.python.org/3/c-api/init.html#c.PyInterpreterStatejp t PyListObject(jm jn 8https://docs.python.org/3/c-api/list.html#c.PyListObjectjp t PyLongObject(jm jn 8https://docs.python.org/3/c-api/long.html#c.PyLongObjectjp tPyMappingMethods(jm jn ?https://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethodsjp tPyMemAllocatorDomain(jm jn Bhttps://docs.python.org/3/c-api/memory.html#c.PyMemAllocatorDomainjp tPyMemAllocatorEx(jm jn >https://docs.python.org/3/c-api/memory.html#c.PyMemAllocatorExjp t PyMemberDef(jm jn =https://docs.python.org/3/c-api/structures.html#c.PyMemberDefjp t PyMethodDef(jm jn =https://docs.python.org/3/c-api/structures.html#c.PyMethodDefjp t PyModuleDef(jm jn 9https://docs.python.org/3/c-api/module.html#c.PyModuleDefjp tPyModuleDef_Slot(jm jn >https://docs.python.org/3/c-api/module.html#c.PyModuleDef_Slotjp tPyNumberMethods(jm jn >https://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethodsjp tPyObject(jm jn :https://docs.python.org/3/c-api/structures.html#c.PyObjectjp tPyObjectArenaAllocator(jm jn Dhttps://docs.python.org/3/c-api/memory.html#c.PyObjectArenaAllocatorjp t PyPreConfig(jm jn >https://docs.python.org/3/c-api/init_config.html#c.PyPreConfigjp t PySendResult(jm jn 8https://docs.python.org/3/c-api/iter.html#c.PySendResultjp tPySequenceMethods(jm jn @https://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethodsjp t PySetObject(jm jn 6https://docs.python.org/3/c-api/set.html#c.PySetObjectjp tPyStatus(jm jn ;https://docs.python.org/3/c-api/init_config.html#c.PyStatusjp tPyStructSequence_Desc(jm jn Bhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Descjp tPyStructSequence_Field(jm jn Chttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Fieldjp t PyThreadState(jm jn 9https://docs.python.org/3/c-api/init.html#c.PyThreadStatejp t PyTupleObject(jm jn :https://docs.python.org/3/c-api/tuple.html#c.PyTupleObjectjp t PyTypeObject(jm jn 8https://docs.python.org/3/c-api/type.html#c.PyTypeObjectjp t PyType_Slot(jm jn 7https://docs.python.org/3/c-api/type.html#c.PyType_Slotjp t PyType_Spec(jm jn 7https://docs.python.org/3/c-api/type.html#c.PyType_Specjp tPyUnicodeObject(jm jn >https://docs.python.org/3/c-api/unicode.html#c.PyUnicodeObjectjp t PyVarObject(jm jn =https://docs.python.org/3/c-api/structures.html#c.PyVarObjectjp tPyWideStringList(jm jn Chttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringListjp tPy_UCS1(jm jn 6https://docs.python.org/3/c-api/unicode.html#c.Py_UCS1jp tPy_UCS2(jm jn 6https://docs.python.org/3/c-api/unicode.html#c.Py_UCS2jp tPy_UCS4(jm jn 6https://docs.python.org/3/c-api/unicode.html#c.Py_UCS4jp t Py_UNICODE(jm jn 9https://docs.python.org/3/c-api/unicode.html#c.Py_UNICODEjp t Py_buffer(jm jn 7https://docs.python.org/3/c-api/buffer.html#c.Py_bufferjp t Py_complex(jm jn 9https://docs.python.org/3/c-api/complex.html#c.Py_complexjp t Py_ssize_t(jm jn 7https://docs.python.org/3/c-api/intro.html#c.Py_ssize_tjp t Py_tracefunc(jm jn 8https://docs.python.org/3/c-api/init.html#c.Py_tracefuncjp tPy_tss_t(jm jn 4https://docs.python.org/3/c-api/init.html#c.Py_tss_tjp t_PyCFunctionFast(jm jn Bhttps://docs.python.org/3/c-api/structures.html#c._PyCFunctionFastjp t_PyCFunctionFastWithKeywords(jm jn Nhttps://docs.python.org/3/c-api/structures.html#c._PyCFunctionFastWithKeywordsjp t_PyFrameEvalFunction(jm jn @https://docs.python.org/3/c-api/init.html#c._PyFrameEvalFunctionjp t allocfunc(jm jn 8https://docs.python.org/3/c-api/typeobj.html#c.allocfuncjp t binaryfunc(jm jn 9https://docs.python.org/3/c-api/typeobj.html#c.binaryfuncjp t descrgetfunc(jm jn ;https://docs.python.org/3/c-api/typeobj.html#c.descrgetfuncjp t descrsetfunc(jm jn ;https://docs.python.org/3/c-api/typeobj.html#c.descrsetfuncjp t destructor(jm jn 9https://docs.python.org/3/c-api/typeobj.html#c.destructorjp tfreefunc(jm jn 7https://docs.python.org/3/c-api/typeobj.html#c.freefuncjp t getattrfunc(jm jn :https://docs.python.org/3/c-api/typeobj.html#c.getattrfuncjp t getattrofunc(jm jn ;https://docs.python.org/3/c-api/typeobj.html#c.getattrofuncjp t getbufferproc(jm jn https://docs.python.org/3/c-api/typeobj.html#c.ssizeobjargprocjp t ternaryfunc(jm jn :https://docs.python.org/3/c-api/typeobj.html#c.ternaryfuncjp t traverseproc(jm jn =https://docs.python.org/3/c-api/gcsupport.html#c.traverseprocjp t unaryfunc(jm jn 8https://docs.python.org/3/c-api/typeobj.html#c.unaryfuncjp tvectorcallfunc(jm jn :https://docs.python.org/3/c-api/call.html#c.vectorcallfuncjp t visitproc(jm jn :https://docs.python.org/3/c-api/gcsupport.html#c.visitprocjp tuc:struct}(PyCompilerFlags(jm jn ?https://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlagsjp t_frozen(jm jn 5https://docs.python.org/3/c-api/import.html#c._frozenjp t_inittab(jm jn 6https://docs.python.org/3/c-api/import.html#c._inittabjp tu py:exception}(ArithmeticError(jm jn Ahttps://docs.python.org/3/library/exceptions.html#ArithmeticErrorjp tAssertionError(jm jn @https://docs.python.org/3/library/exceptions.html#AssertionErrorjp tAttributeError(jm jn @https://docs.python.org/3/library/exceptions.html#AttributeErrorjp t BaseException(jm jn ?https://docs.python.org/3/library/exceptions.html#BaseExceptionjp tBaseExceptionGroup(jm jn Dhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroupjp tBlockingIOError(jm jn Ahttps://docs.python.org/3/library/exceptions.html#BlockingIOErrorjp tBrokenPipeError(jm jn Ahttps://docs.python.org/3/library/exceptions.html#BrokenPipeErrorjp t BufferError(jm jn =https://docs.python.org/3/library/exceptions.html#BufferErrorjp t BytesWarning(jm jn >https://docs.python.org/3/library/exceptions.html#BytesWarningjp tChildProcessError(jm jn Chttps://docs.python.org/3/library/exceptions.html#ChildProcessErrorjp tConnectionAbortedError(jm jn Hhttps://docs.python.org/3/library/exceptions.html#ConnectionAbortedErrorjp tConnectionError(jm jn Ahttps://docs.python.org/3/library/exceptions.html#ConnectionErrorjp tConnectionRefusedError(jm jn Hhttps://docs.python.org/3/library/exceptions.html#ConnectionRefusedErrorjp tConnectionResetError(jm jn Fhttps://docs.python.org/3/library/exceptions.html#ConnectionResetErrorjp tDeprecationWarning(jm jn Dhttps://docs.python.org/3/library/exceptions.html#DeprecationWarningjp tEOFError(jm jn :https://docs.python.org/3/library/exceptions.html#EOFErrorjp tEncodingWarning(jm jn Ahttps://docs.python.org/3/library/exceptions.html#EncodingWarningjp tEnvironmentError(jm jn Bhttps://docs.python.org/3/library/exceptions.html#EnvironmentErrorjp t Exception(jm jn ;https://docs.python.org/3/library/exceptions.html#Exceptionjp tExceptionGroup(jm jn @https://docs.python.org/3/library/exceptions.html#ExceptionGroupjp tFileExistsError(jm jn Ahttps://docs.python.org/3/library/exceptions.html#FileExistsErrorjp tFileNotFoundError(jm jn Chttps://docs.python.org/3/library/exceptions.html#FileNotFoundErrorjp tFloatingPointError(jm jn Dhttps://docs.python.org/3/library/exceptions.html#FloatingPointErrorjp t FutureWarning(jm jn ?https://docs.python.org/3/library/exceptions.html#FutureWarningjp t GeneratorExit(jm jn ?https://docs.python.org/3/library/exceptions.html#GeneratorExitjp tIOError(jm jn 9https://docs.python.org/3/library/exceptions.html#IOErrorjp t ImportError(jm jn =https://docs.python.org/3/library/exceptions.html#ImportErrorjp t ImportWarning(jm jn ?https://docs.python.org/3/library/exceptions.html#ImportWarningjp tIndentationError(jm jn Bhttps://docs.python.org/3/library/exceptions.html#IndentationErrorjp t IndexError(jm jn https://docs.python.org/3/library/exceptions.html#RuntimeErrorjp tRuntimeWarning(jm jn @https://docs.python.org/3/library/exceptions.html#RuntimeWarningjp tStopAsyncIteration(jm jn Dhttps://docs.python.org/3/library/exceptions.html#StopAsyncIterationjp t StopIteration(jm jn ?https://docs.python.org/3/library/exceptions.html#StopIterationjp t SyntaxError(jm jn =https://docs.python.org/3/library/exceptions.html#SyntaxErrorjp t SyntaxWarning(jm jn ?https://docs.python.org/3/library/exceptions.html#SyntaxWarningjp t SystemError(jm jn =https://docs.python.org/3/library/exceptions.html#SystemErrorjp t SystemExit(jm jn https://docs.python.org/3/library/exceptions.html#TimeoutErrorjp t TypeError(jm jn ;https://docs.python.org/3/library/exceptions.html#TypeErrorjp tUnboundLocalError(jm jn Chttps://docs.python.org/3/library/exceptions.html#UnboundLocalErrorjp tUnicodeDecodeError(jm jn Dhttps://docs.python.org/3/library/exceptions.html#UnicodeDecodeErrorjp tUnicodeEncodeError(jm jn Dhttps://docs.python.org/3/library/exceptions.html#UnicodeEncodeErrorjp t UnicodeError(jm jn >https://docs.python.org/3/library/exceptions.html#UnicodeErrorjp tUnicodeTranslateError(jm jn Ghttps://docs.python.org/3/library/exceptions.html#UnicodeTranslateErrorjp tUnicodeWarning(jm jn @https://docs.python.org/3/library/exceptions.html#UnicodeWarningjp t UserWarning(jm jn =https://docs.python.org/3/library/exceptions.html#UserWarningjp t ValueError(jm jn https://docs.python.org/3/library/exceptions.html#WindowsErrorjp tZeroDivisionError(jm jn Chttps://docs.python.org/3/library/exceptions.html#ZeroDivisionErrorjp t _thread.error(jm jn ;https://docs.python.org/3/library/_thread.html#thread.errorjp targparse.ArgumentError(jm jn Fhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentErrorjp targparse.ArgumentTypeError(jm jn Jhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentTypeErrorjp tasyncio.BrokenBarrierError(jm jn Nhttps://docs.python.org/3/library/asyncio-sync.html#asyncio.BrokenBarrierErrorjp tasyncio.CancelledError(jm jn Phttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.CancelledErrorjp tasyncio.IncompleteReadError(jm jn Uhttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.IncompleteReadErrorjp tasyncio.InvalidStateError(jm jn Shttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.InvalidStateErrorjp tasyncio.LimitOverrunError(jm jn Shttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.LimitOverrunErrorjp tasyncio.QueueEmpty(jm jn Ghttps://docs.python.org/3/library/asyncio-queue.html#asyncio.QueueEmptyjp tasyncio.QueueFull(jm jn Fhttps://docs.python.org/3/library/asyncio-queue.html#asyncio.QueueFulljp t!asyncio.SendfileNotAvailableError(jm jn [https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.SendfileNotAvailableErrorjp tasyncio.TimeoutError(jm jn Nhttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.TimeoutErrorjp t audioop.error(jm jn https://docs.python.org/3/library/binascii.html#binascii.Errorjp tbinascii.Incomplete(jm jn Chttps://docs.python.org/3/library/binascii.html#binascii.Incompletejp t!concurrent.futures.BrokenExecutor(jm jn [https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.BrokenExecutorjp t!concurrent.futures.CancelledError(jm jn [https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.CancelledErrorjp t$concurrent.futures.InvalidStateError(jm jn ^https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.InvalidStateErrorjp tconcurrent.futures.TimeoutError(jm jn Yhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.TimeoutErrorjp t,concurrent.futures.process.BrokenProcessPool(jm jn fhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.process.BrokenProcessPooljp t*concurrent.futures.thread.BrokenThreadPool(jm jn dhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.thread.BrokenThreadPooljp t!configparser.DuplicateOptionError(jm jn Uhttps://docs.python.org/3/library/configparser.html#configparser.DuplicateOptionErrorjp t"configparser.DuplicateSectionError(jm jn Vhttps://docs.python.org/3/library/configparser.html#configparser.DuplicateSectionErrorjp tconfigparser.Error(jm jn Fhttps://docs.python.org/3/library/configparser.html#configparser.Errorjp t$configparser.InterpolationDepthError(jm jn Xhttps://docs.python.org/3/library/configparser.html#configparser.InterpolationDepthErrorjp tconfigparser.InterpolationError(jm jn Shttps://docs.python.org/3/library/configparser.html#configparser.InterpolationErrorjp t,configparser.InterpolationMissingOptionError(jm jn `https://docs.python.org/3/library/configparser.html#configparser.InterpolationMissingOptionErrorjp t%configparser.InterpolationSyntaxError(jm jn Yhttps://docs.python.org/3/library/configparser.html#configparser.InterpolationSyntaxErrorjp t&configparser.MissingSectionHeaderError(jm jn Zhttps://docs.python.org/3/library/configparser.html#configparser.MissingSectionHeaderErrorjp tconfigparser.NoOptionError(jm jn Nhttps://docs.python.org/3/library/configparser.html#configparser.NoOptionErrorjp tconfigparser.NoSectionError(jm jn Ohttps://docs.python.org/3/library/configparser.html#configparser.NoSectionErrorjp tconfigparser.ParsingError(jm jn Mhttps://docs.python.org/3/library/configparser.html#configparser.ParsingErrorjp t copy.Error(jm jn 6https://docs.python.org/3/library/copy.html#copy.Errorjp t csv.Error(jm jn 4https://docs.python.org/3/library/csv.html#csv.Errorjp tctypes.ArgumentError(jm jn Bhttps://docs.python.org/3/library/ctypes.html#ctypes.ArgumentErrorjp t curses.error(jm jn :https://docs.python.org/3/library/curses.html#curses.errorjp tdataclasses.FrozenInstanceError(jm jn Rhttps://docs.python.org/3/library/dataclasses.html#dataclasses.FrozenInstanceErrorjp tdbm.dumb.error(jm jn 9https://docs.python.org/3/library/dbm.html#dbm.dumb.errorjp t dbm.error(jm jn 4https://docs.python.org/3/library/dbm.html#dbm.errorjp t dbm.gnu.error(jm jn 8https://docs.python.org/3/library/dbm.html#dbm.gnu.errorjp tdbm.ndbm.error(jm jn 9https://docs.python.org/3/library/dbm.html#dbm.ndbm.errorjp tdoctest.DocTestFailure(jm jn Ehttps://docs.python.org/3/library/doctest.html#doctest.DocTestFailurejp tdoctest.UnexpectedException(jm jn Jhttps://docs.python.org/3/library/doctest.html#doctest.UnexpectedExceptionjp temail.errors.BoundaryError(jm jn Nhttps://docs.python.org/3/library/email.errors.html#email.errors.BoundaryErrorjp temail.errors.HeaderParseError(jm jn Qhttps://docs.python.org/3/library/email.errors.html#email.errors.HeaderParseErrorjp temail.errors.MessageError(jm jn Mhttps://docs.python.org/3/library/email.errors.html#email.errors.MessageErrorjp temail.errors.MessageParseError(jm jn Rhttps://docs.python.org/3/library/email.errors.html#email.errors.MessageParseErrorjp t%email.errors.MultipartConversionError(jm jn Yhttps://docs.python.org/3/library/email.errors.html#email.errors.MultipartConversionErrorjp tftplib.error_perm(jm jn ?https://docs.python.org/3/library/ftplib.html#ftplib.error_permjp tftplib.error_proto(jm jn @https://docs.python.org/3/library/ftplib.html#ftplib.error_protojp tftplib.error_reply(jm jn @https://docs.python.org/3/library/ftplib.html#ftplib.error_replyjp tftplib.error_temp(jm jn ?https://docs.python.org/3/library/ftplib.html#ftplib.error_tempjp tgetopt.GetoptError(jm jn @https://docs.python.org/3/library/getopt.html#getopt.GetoptErrorjp t getopt.error(jm jn :https://docs.python.org/3/library/getopt.html#getopt.errorjp tgetpass.GetPassWarning(jm jn Ehttps://docs.python.org/3/library/getpass.html#getpass.GetPassWarningjp tgraphlib.CycleError(jm jn Chttps://docs.python.org/3/library/graphlib.html#graphlib.CycleErrorjp tgzip.BadGzipFile(jm jn https://docs.python.org/3/library/resource.html#resource.errorjp t select.error(jm jn :https://docs.python.org/3/library/select.html#select.errorjp t shutil.Error(jm jn :https://docs.python.org/3/library/shutil.html#shutil.Errorjp tshutil.SameFileError(jm jn Bhttps://docs.python.org/3/library/shutil.html#shutil.SameFileErrorjp tsignal.ItimerError(jm jn @https://docs.python.org/3/library/signal.html#signal.ItimerErrorjp tsmtplib.SMTPAuthenticationError(jm jn Nhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPAuthenticationErrorjp tsmtplib.SMTPConnectError(jm jn Ghttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPConnectErrorjp tsmtplib.SMTPDataError(jm jn Dhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPDataErrorjp tsmtplib.SMTPException(jm jn Dhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPExceptionjp tsmtplib.SMTPHeloError(jm jn Dhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPHeloErrorjp tsmtplib.SMTPNotSupportedError(jm jn Lhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPNotSupportedErrorjp tsmtplib.SMTPRecipientsRefused(jm jn Lhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPRecipientsRefusedjp tsmtplib.SMTPResponseException(jm jn Lhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPResponseExceptionjp tsmtplib.SMTPSenderRefused(jm jn Hhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPSenderRefusedjp tsmtplib.SMTPServerDisconnected(jm jn Mhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPServerDisconnectedjp t socket.error(jm jn :https://docs.python.org/3/library/socket.html#socket.errorjp tsocket.gaierror(jm jn =https://docs.python.org/3/library/socket.html#socket.gaierrorjp t socket.herror(jm jn ;https://docs.python.org/3/library/socket.html#socket.herrorjp tsocket.timeout(jm jn https://docs.python.org/3/library/sqlite3.html#sqlite3.Warningjp tssl.CertificateError(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.CertificateErrorjp tssl.SSLCertVerificationError(jm jn Ghttps://docs.python.org/3/library/ssl.html#ssl.SSLCertVerificationErrorjp tssl.SSLEOFError(jm jn :https://docs.python.org/3/library/ssl.html#ssl.SSLEOFErrorjp t ssl.SSLError(jm jn 7https://docs.python.org/3/library/ssl.html#ssl.SSLErrorjp tssl.SSLSyscallError(jm jn >https://docs.python.org/3/library/ssl.html#ssl.SSLSyscallErrorjp tssl.SSLWantReadError(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.SSLWantReadErrorjp tssl.SSLWantWriteError(jm jn @https://docs.python.org/3/library/ssl.html#ssl.SSLWantWriteErrorjp tssl.SSLZeroReturnError(jm jn Ahttps://docs.python.org/3/library/ssl.html#ssl.SSLZeroReturnErrorjp tstatistics.StatisticsError(jm jn Lhttps://docs.python.org/3/library/statistics.html#statistics.StatisticsErrorjp t struct.error(jm jn :https://docs.python.org/3/library/struct.html#struct.errorjp tsubprocess.CalledProcessError(jm jn Ohttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessErrorjp tsubprocess.SubprocessError(jm jn Lhttps://docs.python.org/3/library/subprocess.html#subprocess.SubprocessErrorjp tsubprocess.TimeoutExpired(jm jn Khttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpiredjp t sunau.Error(jm jn 8https://docs.python.org/3/library/sunau.html#sunau.Errorjp ttabnanny.NannyNag(jm jn Ahttps://docs.python.org/3/library/tabnanny.html#tabnanny.NannyNagjp ttarfile.AbsoluteLinkError(jm jn Hhttps://docs.python.org/3/library/tarfile.html#tarfile.AbsoluteLinkErrorjp ttarfile.AbsolutePathError(jm jn Hhttps://docs.python.org/3/library/tarfile.html#tarfile.AbsolutePathErrorjp ttarfile.CompressionError(jm jn Ghttps://docs.python.org/3/library/tarfile.html#tarfile.CompressionErrorjp ttarfile.ExtractError(jm jn Chttps://docs.python.org/3/library/tarfile.html#tarfile.ExtractErrorjp ttarfile.FilterError(jm jn Bhttps://docs.python.org/3/library/tarfile.html#tarfile.FilterErrorjp ttarfile.HeaderError(jm jn Bhttps://docs.python.org/3/library/tarfile.html#tarfile.HeaderErrorjp t#tarfile.LinkOutsideDestinationError(jm jn Rhttps://docs.python.org/3/library/tarfile.html#tarfile.LinkOutsideDestinationErrorjp ttarfile.OutsideDestinationError(jm jn Nhttps://docs.python.org/3/library/tarfile.html#tarfile.OutsideDestinationErrorjp ttarfile.ReadError(jm jn @https://docs.python.org/3/library/tarfile.html#tarfile.ReadErrorjp ttarfile.SpecialFileError(jm jn Ghttps://docs.python.org/3/library/tarfile.html#tarfile.SpecialFileErrorjp ttarfile.StreamError(jm jn Bhttps://docs.python.org/3/library/tarfile.html#tarfile.StreamErrorjp ttarfile.TarError(jm jn ?https://docs.python.org/3/library/tarfile.html#tarfile.TarErrorjp ttest.support.ResourceDenied(jm jn Ghttps://docs.python.org/3/library/test.html#test.support.ResourceDeniedjp ttest.support.TestFailed(jm jn Chttps://docs.python.org/3/library/test.html#test.support.TestFailedjp tthreading.BrokenBarrierError(jm jn Mhttps://docs.python.org/3/library/threading.html#threading.BrokenBarrierErrorjp ttokenize.TokenError(jm jn Chttps://docs.python.org/3/library/tokenize.html#tokenize.TokenErrorjp ttomllib.TOMLDecodeError(jm jn Fhttps://docs.python.org/3/library/tomllib.html#tomllib.TOMLDecodeErrorjp tunittest.SkipTest(jm jn Ahttps://docs.python.org/3/library/unittest.html#unittest.SkipTestjp t!urllib.error.ContentTooShortError(jm jn Uhttps://docs.python.org/3/library/urllib.error.html#urllib.error.ContentTooShortErrorjp turllib.error.HTTPError(jm jn Jhttps://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPErrorjp turllib.error.URLError(jm jn Ihttps://docs.python.org/3/library/urllib.error.html#urllib.error.URLErrorjp tuu.Error(jm jn 2https://docs.python.org/3/library/uu.html#uu.Errorjp t wave.Error(jm jn 6https://docs.python.org/3/library/wave.html#wave.Errorjp twebbrowser.Error(jm jn Bhttps://docs.python.org/3/library/webbrowser.html#webbrowser.Errorjp txdrlib.ConversionError(jm jn Dhttps://docs.python.org/3/library/xdrlib.html#xdrlib.ConversionErrorjp t xdrlib.Error(jm jn :https://docs.python.org/3/library/xdrlib.html#xdrlib.Errorjp txml.dom.DOMException(jm jn Chttps://docs.python.org/3/library/xml.dom.html#xml.dom.DOMExceptionjp txml.dom.DomstringSizeErr(jm jn Ghttps://docs.python.org/3/library/xml.dom.html#xml.dom.DomstringSizeErrjp txml.dom.HierarchyRequestErr(jm jn Jhttps://docs.python.org/3/library/xml.dom.html#xml.dom.HierarchyRequestErrjp txml.dom.IndexSizeErr(jm jn Chttps://docs.python.org/3/library/xml.dom.html#xml.dom.IndexSizeErrjp txml.dom.InuseAttributeErr(jm jn Hhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InuseAttributeErrjp txml.dom.InvalidAccessErr(jm jn Ghttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidAccessErrjp txml.dom.InvalidCharacterErr(jm jn Jhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidCharacterErrjp txml.dom.InvalidModificationErr(jm jn Mhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidModificationErrjp txml.dom.InvalidStateErr(jm jn Fhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidStateErrjp txml.dom.NamespaceErr(jm jn Chttps://docs.python.org/3/library/xml.dom.html#xml.dom.NamespaceErrjp txml.dom.NoDataAllowedErr(jm jn Ghttps://docs.python.org/3/library/xml.dom.html#xml.dom.NoDataAllowedErrjp t xml.dom.NoModificationAllowedErr(jm jn Ohttps://docs.python.org/3/library/xml.dom.html#xml.dom.NoModificationAllowedErrjp txml.dom.NotFoundErr(jm jn Bhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NotFoundErrjp txml.dom.NotSupportedErr(jm jn Fhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NotSupportedErrjp txml.dom.SyntaxErr(jm jn @https://docs.python.org/3/library/xml.dom.html#xml.dom.SyntaxErrjp txml.dom.WrongDocumentErr(jm jn Ghttps://docs.python.org/3/library/xml.dom.html#xml.dom.WrongDocumentErrjp txml.parsers.expat.ExpatError(jm jn Khttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatErrorjp txml.parsers.expat.error(jm jn Fhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errorjp txml.sax.SAXException(jm jn Chttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXExceptionjp t!xml.sax.SAXNotRecognizedException(jm jn Phttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotRecognizedExceptionjp t xml.sax.SAXNotSupportedException(jm jn Ohttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotSupportedExceptionjp txml.sax.SAXParseException(jm jn Hhttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXParseExceptionjp tzipfile.BadZipFile(jm jn Ahttps://docs.python.org/3/library/zipfile.html#zipfile.BadZipFilejp tzipfile.BadZipfile(jm jn Ahttps://docs.python.org/3/library/zipfile.html#zipfile.BadZipfilejp tzipfile.LargeZipFile(jm jn Chttps://docs.python.org/3/library/zipfile.html#zipfile.LargeZipFilejp tzipimport.ZipImportError(jm jn Ihttps://docs.python.org/3/library/zipimport.html#zipimport.ZipImportErrorjp t zlib.error(jm jn 6https://docs.python.org/3/library/zlib.html#zlib.errorjp tzoneinfo.InvalidTZPathWarning(jm jn Mhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.InvalidTZPathWarningjp tzoneinfo.ZoneInfoNotFoundError(jm jn Nhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfoNotFoundErrorjp tu py:attribute}(BaseException.__notes__(jm jn Ihttps://docs.python.org/3/library/exceptions.html#BaseException.__notes__jp tBaseException.args(jm jn Dhttps://docs.python.org/3/library/exceptions.html#BaseException.argsjp tBaseExceptionGroup.exceptions(jm jn Ohttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup.exceptionsjp tBaseExceptionGroup.message(jm jn Lhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup.messagejp t"BlockingIOError.characters_written(jm jn Thttps://docs.python.org/3/library/exceptions.html#BlockingIOError.characters_writtenjp t OSError.errno(jm jn ?https://docs.python.org/3/library/exceptions.html#OSError.errnojp tOSError.filename(jm jn Bhttps://docs.python.org/3/library/exceptions.html#OSError.filenamejp tOSError.filename2(jm jn Chttps://docs.python.org/3/library/exceptions.html#OSError.filename2jp tOSError.strerror(jm jn Bhttps://docs.python.org/3/library/exceptions.html#OSError.strerrorjp tOSError.winerror(jm jn Bhttps://docs.python.org/3/library/exceptions.html#OSError.winerrorjp tSyntaxError.end_lineno(jm jn Hhttps://docs.python.org/3/library/exceptions.html#SyntaxError.end_linenojp tSyntaxError.end_offset(jm jn Hhttps://docs.python.org/3/library/exceptions.html#SyntaxError.end_offsetjp tSyntaxError.filename(jm jn Fhttps://docs.python.org/3/library/exceptions.html#SyntaxError.filenamejp tSyntaxError.lineno(jm jn Dhttps://docs.python.org/3/library/exceptions.html#SyntaxError.linenojp tSyntaxError.offset(jm jn Dhttps://docs.python.org/3/library/exceptions.html#SyntaxError.offsetjp tSyntaxError.text(jm jn Bhttps://docs.python.org/3/library/exceptions.html#SyntaxError.textjp tSystemExit.code(jm jn Ahttps://docs.python.org/3/library/exceptions.html#SystemExit.codejp tUnicodeError.encoding(jm jn Ghttps://docs.python.org/3/library/exceptions.html#UnicodeError.encodingjp tUnicodeError.end(jm jn Bhttps://docs.python.org/3/library/exceptions.html#UnicodeError.endjp tUnicodeError.object(jm jn Ehttps://docs.python.org/3/library/exceptions.html#UnicodeError.objectjp tUnicodeError.reason(jm jn Ehttps://docs.python.org/3/library/exceptions.html#UnicodeError.reasonjp tUnicodeError.start(jm jn Dhttps://docs.python.org/3/library/exceptions.html#UnicodeError.startjp t __cached__(jm jn 8https://docs.python.org/3/reference/import.html#cached__jp t__file__(jm jn 6https://docs.python.org/3/reference/import.html#file__jp t __loader__(jm jn 8https://docs.python.org/3/reference/import.html#loader__jp t__name__(jm jn 6https://docs.python.org/3/reference/import.html#name__jp t __package__(jm jn 9https://docs.python.org/3/reference/import.html#package__jp t__path__(jm jn 6https://docs.python.org/3/reference/import.html#path__jp t__spec__(jm jn 6https://docs.python.org/3/reference/import.html#spec__jp tarray.array.itemsize(jm jn Ahttps://docs.python.org/3/library/array.html#array.array.itemsizejp tarray.array.typecode(jm jn Ahttps://docs.python.org/3/library/array.html#array.array.typecodejp tast.AST._fields(jm jn :https://docs.python.org/3/library/ast.html#ast.AST._fieldsjp tast.AST.col_offset(jm jn =https://docs.python.org/3/library/ast.html#ast.AST.col_offsetjp tast.AST.end_col_offset(jm jn Ahttps://docs.python.org/3/library/ast.html#ast.AST.end_col_offsetjp tast.AST.end_lineno(jm jn =https://docs.python.org/3/library/ast.html#ast.AST.end_linenojp tast.AST.lineno(jm jn 9https://docs.python.org/3/library/ast.html#ast.AST.linenojp tast.Assign.type_comment(jm jn Bhttps://docs.python.org/3/library/ast.html#ast.Assign.type_commentjp tast.For.type_comment(jm jn ?https://docs.python.org/3/library/ast.html#ast.For.type_commentjp tast.FunctionDef.type_comment(jm jn Ghttps://docs.python.org/3/library/ast.html#ast.FunctionDef.type_commentjp tast.With.type_comment(jm jn @https://docs.python.org/3/library/ast.html#ast.With.type_commentjp tast.arg.type_comment(jm jn ?https://docs.python.org/3/library/ast.html#ast.arg.type_commentjp tasyncio.Barrier.broken(jm jn Jhttps://docs.python.org/3/library/asyncio-sync.html#asyncio.Barrier.brokenjp tasyncio.Barrier.n_waiting(jm jn Mhttps://docs.python.org/3/library/asyncio-sync.html#asyncio.Barrier.n_waitingjp tasyncio.Barrier.parties(jm jn Khttps://docs.python.org/3/library/asyncio-sync.html#asyncio.Barrier.partiesjp t$asyncio.IncompleteReadError.expected(jm jn ^https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.IncompleteReadError.expectedjp t#asyncio.IncompleteReadError.partial(jm jn ]https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.IncompleteReadError.partialjp t"asyncio.LimitOverrunError.consumed(jm jn \https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.LimitOverrunError.consumedjp tasyncio.Queue.maxsize(jm jn Jhttps://docs.python.org/3/library/asyncio-queue.html#asyncio.Queue.maxsizejp tasyncio.Server.sockets(jm jn Ohttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio.Server.socketsjp tasyncio.StreamWriter.transport(jm jn Thttps://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.transportjp tasyncio.subprocess.Process.pid(jm jn Xhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.pidjp t%asyncio.subprocess.Process.returncode(jm jn _https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.returncodejp t!asyncio.subprocess.Process.stderr(jm jn [https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.stderrjp t asyncio.subprocess.Process.stdin(jm jn Zhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.stdinjp t!asyncio.subprocess.Process.stdout(jm jn [https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.stdoutjp tbdb.Breakpoint.bpbynumber(jm jn Dhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpbynumberjp tbdb.Breakpoint.bplist(jm jn @https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bplistjp tbdb.Breakpoint.cond(jm jn >https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.condjp tbdb.Breakpoint.enabled(jm jn Ahttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.enabledjp tbdb.Breakpoint.file(jm jn >https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.filejp tbdb.Breakpoint.funcname(jm jn Bhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.funcnamejp tbdb.Breakpoint.hits(jm jn >https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.hitsjp tbdb.Breakpoint.ignore(jm jn @https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.ignorejp tbdb.Breakpoint.line(jm jn >https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.linejp tbdb.Breakpoint.temporary(jm jn Chttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.temporaryjp tbz2.BZ2Decompressor.eof(jm jn Bhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.eofjp tbz2.BZ2Decompressor.needs_input(jm jn Jhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.needs_inputjp tbz2.BZ2Decompressor.unused_data(jm jn Jhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.unused_datajp t$calendar.HTMLCalendar.cssclass_month(jm jn Thttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_monthjp t)calendar.HTMLCalendar.cssclass_month_head(jm jn Yhttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_month_headjp t$calendar.HTMLCalendar.cssclass_noday(jm jn Thttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_nodayjp t#calendar.HTMLCalendar.cssclass_year(jm jn Shttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_yearjp t(calendar.HTMLCalendar.cssclass_year_head(jm jn Xhttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_year_headjp t calendar.HTMLCalendar.cssclasses(jm jn Phttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclassesjp t-calendar.HTMLCalendar.cssclasses_weekday_head(jm jn ]https://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclasses_weekday_headjp tclass.__bases__(jm jn ?https://docs.python.org/3/library/stdtypes.html#class.__bases__jp t class.__mro__(jm jn =https://docs.python.org/3/library/stdtypes.html#class.__mro__jp tclinic.CConverter.c_default(jm jn Ghttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.c_defaultjp t#clinic.CConverter.c_ignored_default(jm jn Ohttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.c_ignored_defaultjp tclinic.CConverter.converter(jm jn Ghttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.converterjp tclinic.CConverter.default(jm jn Ehttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.defaultjp t#clinic.CConverter.impl_by_reference(jm jn Ohttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.impl_by_referencejp t$clinic.CConverter.parse_by_reference(jm jn Phttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.parse_by_referencejp tclinic.CConverter.py_default(jm jn Hhttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.py_defaultjp tclinic.CConverter.type(jm jn Bhttps://docs.python.org/3/howto/clinic.html#clinic.CConverter.typejp tcmd.Cmd.cmdqueue(jm jn ;https://docs.python.org/3/library/cmd.html#cmd.Cmd.cmdqueuejp tcmd.Cmd.doc_header(jm jn =https://docs.python.org/3/library/cmd.html#cmd.Cmd.doc_headerjp tcmd.Cmd.identchars(jm jn =https://docs.python.org/3/library/cmd.html#cmd.Cmd.identcharsjp t cmd.Cmd.intro(jm jn 8https://docs.python.org/3/library/cmd.html#cmd.Cmd.introjp tcmd.Cmd.lastcmd(jm jn :https://docs.python.org/3/library/cmd.html#cmd.Cmd.lastcmdjp tcmd.Cmd.misc_header(jm jn >https://docs.python.org/3/library/cmd.html#cmd.Cmd.misc_headerjp tcmd.Cmd.prompt(jm jn 9https://docs.python.org/3/library/cmd.html#cmd.Cmd.promptjp t cmd.Cmd.ruler(jm jn 8https://docs.python.org/3/library/cmd.html#cmd.Cmd.rulerjp tcmd.Cmd.undoc_header(jm jn ?https://docs.python.org/3/library/cmd.html#cmd.Cmd.undoc_headerjp tcmd.Cmd.use_rawinput(jm jn ?https://docs.python.org/3/library/cmd.html#cmd.Cmd.use_rawinputjp tcodecs.CodecInfo.decode(jm jn Ehttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.decodejp tcodecs.CodecInfo.encode(jm jn Ehttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.encodejp t#codecs.CodecInfo.incrementaldecoder(jm jn Qhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.incrementaldecoderjp t#codecs.CodecInfo.incrementalencoder(jm jn Qhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.incrementalencoderjp tcodecs.CodecInfo.name(jm jn Chttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.namejp tcodecs.CodecInfo.streamreader(jm jn Khttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.streamreaderjp tcodecs.CodecInfo.streamwriter(jm jn Khttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.streamwriterjp tcollections.ChainMap.maps(jm jn Lhttps://docs.python.org/3/library/collections.html#collections.ChainMap.mapsjp tcollections.ChainMap.parents(jm jn Ohttps://docs.python.org/3/library/collections.html#collections.ChainMap.parentsjp tcollections.UserDict.data(jm jn Lhttps://docs.python.org/3/library/collections.html#collections.UserDict.datajp tcollections.UserList.data(jm jn Lhttps://docs.python.org/3/library/collections.html#collections.UserList.datajp tcollections.UserString.data(jm jn Nhttps://docs.python.org/3/library/collections.html#collections.UserString.datajp t'collections.defaultdict.default_factory(jm jn Zhttps://docs.python.org/3/library/collections.html#collections.defaultdict.default_factoryjp tcollections.deque.maxlen(jm jn Khttps://docs.python.org/3/library/collections.html#collections.deque.maxlenjp t*collections.somenamedtuple._field_defaults(jm jn ]https://docs.python.org/3/library/collections.html#collections.somenamedtuple._field_defaultsjp t"collections.somenamedtuple._fields(jm jn Uhttps://docs.python.org/3/library/collections.html#collections.somenamedtuple._fieldsjp t(configparser.ConfigParser.BOOLEAN_STATES(jm jn \https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.BOOLEAN_STATESjp t!configparser.ConfigParser.SECTCRE(jm jn Uhttps://docs.python.org/3/library/configparser.html#configparser.ConfigParser.SECTCREjp tcontextvars.ContextVar.name(jm jn Nhttps://docs.python.org/3/library/contextvars.html#contextvars.ContextVar.namejp tcontextvars.Token.MISSING(jm jn Lhttps://docs.python.org/3/library/contextvars.html#contextvars.Token.MISSINGjp tcontextvars.Token.old_value(jm jn Nhttps://docs.python.org/3/library/contextvars.html#contextvars.Token.old_valuejp tcontextvars.Token.var(jm jn Hhttps://docs.python.org/3/library/contextvars.html#contextvars.Token.varjp t crypt.methods(jm jn :https://docs.python.org/3/library/crypt.html#crypt.methodsjp tcsv.Dialect.delimiter(jm jn @https://docs.python.org/3/library/csv.html#csv.Dialect.delimiterjp tcsv.Dialect.doublequote(jm jn Bhttps://docs.python.org/3/library/csv.html#csv.Dialect.doublequotejp tcsv.Dialect.escapechar(jm jn Ahttps://docs.python.org/3/library/csv.html#csv.Dialect.escapecharjp tcsv.Dialect.lineterminator(jm jn Ehttps://docs.python.org/3/library/csv.html#csv.Dialect.lineterminatorjp tcsv.Dialect.quotechar(jm jn @https://docs.python.org/3/library/csv.html#csv.Dialect.quotecharjp tcsv.Dialect.quoting(jm jn >https://docs.python.org/3/library/csv.html#csv.Dialect.quotingjp tcsv.Dialect.skipinitialspace(jm jn Ghttps://docs.python.org/3/library/csv.html#csv.Dialect.skipinitialspacejp tcsv.Dialect.strict(jm jn =https://docs.python.org/3/library/csv.html#csv.Dialect.strictjp tcsv.DictReader.fieldnames(jm jn Dhttps://docs.python.org/3/library/csv.html#csv.DictReader.fieldnamesjp tcsv.csvreader.dialect(jm jn @https://docs.python.org/3/library/csv.html#csv.csvreader.dialectjp tcsv.csvreader.line_num(jm jn Ahttps://docs.python.org/3/library/csv.html#csv.csvreader.line_numjp tcsv.csvwriter.dialect(jm jn @https://docs.python.org/3/library/csv.html#csv.csvwriter.dialectjp tctypes.Array._length_(jm jn Chttps://docs.python.org/3/library/ctypes.html#ctypes.Array._length_jp tctypes.Array._type_(jm jn Ahttps://docs.python.org/3/library/ctypes.html#ctypes.Array._type_jp tctypes.PyDLL._handle(jm jn Bhttps://docs.python.org/3/library/ctypes.html#ctypes.PyDLL._handlejp tctypes.PyDLL._name(jm jn @https://docs.python.org/3/library/ctypes.html#ctypes.PyDLL._namejp tctypes.Structure._anonymous_(jm jn Jhttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._anonymous_jp tctypes.Structure._fields_(jm jn Ghttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._fields_jp tctypes.Structure._pack_(jm jn Ehttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._pack_jp tctypes._CData._b_base_(jm jn Dhttps://docs.python.org/3/library/ctypes.html#ctypes._CData._b_base_jp tctypes._CData._b_needsfree_(jm jn Ihttps://docs.python.org/3/library/ctypes.html#ctypes._CData._b_needsfree_jp tctypes._CData._objects(jm jn Dhttps://docs.python.org/3/library/ctypes.html#ctypes._CData._objectsjp tctypes._FuncPtr.argtypes(jm jn Fhttps://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.argtypesjp tctypes._FuncPtr.errcheck(jm jn Fhttps://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.errcheckjp tctypes._FuncPtr.restype(jm jn Ehttps://docs.python.org/3/library/ctypes.html#ctypes._FuncPtr.restypejp tctypes._Pointer._type_(jm jn Dhttps://docs.python.org/3/library/ctypes.html#ctypes._Pointer._type_jp tctypes._Pointer.contents(jm jn Fhttps://docs.python.org/3/library/ctypes.html#ctypes._Pointer.contentsjp tctypes._SimpleCData.value(jm jn Ghttps://docs.python.org/3/library/ctypes.html#ctypes._SimpleCData.valuejp t"curses.textpad.Textbox.stripspaces(jm jn Phttps://docs.python.org/3/library/curses.html#curses.textpad.Textbox.stripspacesjp tcurses.window.encoding(jm jn Dhttps://docs.python.org/3/library/curses.html#curses.window.encodingjp t datetime.UTC(jm jn https://docs.python.org/3/library/enum.html#enum.Enum._ignore_jp tenum.Enum.name(jm jn :https://docs.python.org/3/library/enum.html#enum.Enum.namejp tenum.Enum.value(jm jn ;https://docs.python.org/3/library/enum.html#enum.Enum.valuejp tenum.EnumCheck.CONTINUOUS(jm jn Ehttps://docs.python.org/3/library/enum.html#enum.EnumCheck.CONTINUOUSjp tenum.EnumCheck.NAMED_FLAGS(jm jn Fhttps://docs.python.org/3/library/enum.html#enum.EnumCheck.NAMED_FLAGSjp tenum.EnumCheck.UNIQUE(jm jn Ahttps://docs.python.org/3/library/enum.html#enum.EnumCheck.UNIQUEjp tenum.FlagBoundary.CONFORM(jm jn Ehttps://docs.python.org/3/library/enum.html#enum.FlagBoundary.CONFORMjp tenum.FlagBoundary.EJECT(jm jn Chttps://docs.python.org/3/library/enum.html#enum.FlagBoundary.EJECTjp tenum.FlagBoundary.KEEP(jm jn Bhttps://docs.python.org/3/library/enum.html#enum.FlagBoundary.KEEPjp tenum.FlagBoundary.STRICT(jm jn Dhttps://docs.python.org/3/library/enum.html#enum.FlagBoundary.STRICTjp tfilecmp.DEFAULT_IGNORES(jm jn Fhttps://docs.python.org/3/library/filecmp.html#filecmp.DEFAULT_IGNORESjp tfilecmp.dircmp.common(jm jn Dhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.commonjp tfilecmp.dircmp.common_dirs(jm jn Ihttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_dirsjp tfilecmp.dircmp.common_files(jm jn Jhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_filesjp tfilecmp.dircmp.common_funny(jm jn Jhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.common_funnyjp tfilecmp.dircmp.diff_files(jm jn Hhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.diff_filesjp tfilecmp.dircmp.funny_files(jm jn Ihttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.funny_filesjp t6filecmp.dircmp.left(jm jn Bhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.leftjp tfilecmp.dircmp.left_list(jm jn Ghttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.left_listjp tfilecmp.dircmp.left_only(jm jn Ghttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.left_onlyjp tfilecmp.dircmp.right(jm jn Chttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.rightjp tfilecmp.dircmp.right_list(jm jn Hhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.right_listjp tfilecmp.dircmp.right_only(jm jn Hhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.right_onlyjp tfilecmp.dircmp.same_files(jm jn Hhttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.same_filesjp tfilecmp.dircmp.subdirs(jm jn Ehttps://docs.python.org/3/library/filecmp.html#filecmp.dircmp.subdirsjp tfractions.Fraction.denominator(jm jn Ohttps://docs.python.org/3/library/fractions.html#fractions.Fraction.denominatorjp tfractions.Fraction.numerator(jm jn Mhttps://docs.python.org/3/library/fractions.html#fractions.Fraction.numeratorjp tftplib.FTP_TLS.ssl_version(jm jn Hhttps://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS.ssl_versionjp tfunctools.partial.args(jm jn Ghttps://docs.python.org/3/library/functools.html#functools.partial.argsjp tfunctools.partial.func(jm jn Ghttps://docs.python.org/3/library/functools.html#functools.partial.funcjp tfunctools.partial.keywords(jm jn Khttps://docs.python.org/3/library/functools.html#functools.partial.keywordsjp tgenericalias.__args__(jm jn Ehttps://docs.python.org/3/library/stdtypes.html#genericalias.__args__jp tgenericalias.__origin__(jm jn Ghttps://docs.python.org/3/library/stdtypes.html#genericalias.__origin__jp tgenericalias.__parameters__(jm jn Khttps://docs.python.org/3/library/stdtypes.html#genericalias.__parameters__jp tgenericalias.__unpacked__(jm jn Ihttps://docs.python.org/3/library/stdtypes.html#genericalias.__unpacked__jp tgzip.GzipFile.mtime(jm jn ?https://docs.python.org/3/library/gzip.html#gzip.GzipFile.mtimejp tgzip.GzipFile.name(jm jn >https://docs.python.org/3/library/gzip.html#gzip.GzipFile.namejp thashlib.hash.name(jm jn @https://docs.python.org/3/library/hashlib.html#hashlib.hash.namejp thmac.HMAC.block_size(jm jn @https://docs.python.org/3/library/hmac.html#hmac.HMAC.block_sizejp thmac.HMAC.digest_size(jm jn Ahttps://docs.python.org/3/library/hmac.html#hmac.HMAC.digest_sizejp thmac.HMAC.name(jm jn :https://docs.python.org/3/library/hmac.html#hmac.HMAC.namejp t$http.client.HTTPConnection.blocksize(jm jn Whttps://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.blocksizejp thttp.client.HTTPResponse.closed(jm jn Rhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.closedjp t#http.client.HTTPResponse.debuglevel(jm jn Vhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.debugleveljp t http.client.HTTPResponse.headers(jm jn Shttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.headersjp thttp.client.HTTPResponse.msg(jm jn Ohttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.msgjp thttp.client.HTTPResponse.reason(jm jn Rhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.reasonjp thttp.client.HTTPResponse.status(jm jn Rhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.statusjp thttp.client.HTTPResponse.url(jm jn Ohttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.urljp t http.client.HTTPResponse.version(jm jn Shttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.versionjp thttp.cookiejar.Cookie.comment(jm jn Shttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.commentjp t!http.cookiejar.Cookie.comment_url(jm jn Whttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.comment_urljp thttp.cookiejar.Cookie.discard(jm jn Shttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.discardjp t(http.cookiejar.Cookie.domain_initial_dot(jm jn ^https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_initial_dotjp t&http.cookiejar.Cookie.domain_specified(jm jn \https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_specifiedjp thttp.cookiejar.Cookie.expires(jm jn Shttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.expiresjp thttp.cookiejar.Cookie.name(jm jn Phttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.namejp thttp.cookiejar.Cookie.path(jm jn Phttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.pathjp thttp.cookiejar.Cookie.port(jm jn Phttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.portjp t$http.cookiejar.Cookie.port_specified(jm jn Zhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.port_specifiedjp thttp.cookiejar.Cookie.rfc2109(jm jn Shttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.rfc2109jp thttp.cookiejar.Cookie.secure(jm jn Rhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.securejp thttp.cookiejar.Cookie.value(jm jn Qhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.valuejp thttp.cookiejar.Cookie.version(jm jn Shttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.versionjp t(http.cookiejar.CookiePolicy.hide_cookie2(jm jn ^https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.hide_cookie2jp t$http.cookiejar.CookiePolicy.netscape(jm jn Zhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.netscapejp t#http.cookiejar.CookiePolicy.rfc2965(jm jn Yhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.rfc2965jp t0http.cookiejar.DefaultCookiePolicy.DomainLiberal(jm jn fhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainLiberaljp t5http.cookiejar.DefaultCookiePolicy.DomainRFC2965Match(jm jn khttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainRFC2965Matchjp t/http.cookiejar.DefaultCookiePolicy.DomainStrict(jm jn ehttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictjp t5http.cookiejar.DefaultCookiePolicy.DomainStrictNoDots(jm jn khttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNoDotsjp t8http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomain(jm jn nhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomainjp t6http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscape(jm jn lhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscapejp t0http.cookiejar.DefaultCookiePolicy.strict_domain(jm jn fhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_domainjp t3http.cookiejar.DefaultCookiePolicy.strict_ns_domain(jm jn ihttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_domainjp t?http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollar(jm jn uhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollarjp t5http.cookiejar.DefaultCookiePolicy.strict_ns_set_path(jm jn khttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_pathjp t9http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiable(jm jn ohttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiablejp t>http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiable(jm jn thttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiablejp t&http.cookiejar.FileCookieJar.delayload(jm jn \https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.delayloadjp t%http.cookiejar.FileCookieJar.filename(jm jn [https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.filenamejp thttp.cookies.Morsel.coded_value(jm jn Shttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.coded_valuejp thttp.cookies.Morsel.key(jm jn Khttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.keyjp thttp.cookies.Morsel.value(jm jn Mhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.valuejp t/http.server.BaseHTTPRequestHandler.MessageClass(jm jn bhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.MessageClassjp t1http.server.BaseHTTPRequestHandler.client_address(jm jn dhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.client_addressjp t3http.server.BaseHTTPRequestHandler.close_connection(jm jn fhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.close_connectionjp t*http.server.BaseHTTPRequestHandler.command(jm jn ]https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.commandjp t5http.server.BaseHTTPRequestHandler.error_content_type(jm jn hhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_content_typejp t7http.server.BaseHTTPRequestHandler.error_message_format(jm jn jhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_message_formatjp t*http.server.BaseHTTPRequestHandler.headers(jm jn ]https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.headersjp t'http.server.BaseHTTPRequestHandler.path(jm jn Zhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.pathjp t3http.server.BaseHTTPRequestHandler.protocol_version(jm jn fhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.protocol_versionjp t2http.server.BaseHTTPRequestHandler.request_version(jm jn ehttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.request_versionjp t.http.server.BaseHTTPRequestHandler.requestline(jm jn ahttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.requestlinejp t,http.server.BaseHTTPRequestHandler.responses(jm jn _https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.responsesjp t(http.server.BaseHTTPRequestHandler.rfile(jm jn [https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.rfilejp t)http.server.BaseHTTPRequestHandler.server(jm jn \https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.serverjp t1http.server.BaseHTTPRequestHandler.server_version(jm jn dhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.server_versionjp t.http.server.BaseHTTPRequestHandler.sys_version(jm jn ahttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.sys_versionjp t(http.server.BaseHTTPRequestHandler.wfile(jm jn [https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.wfilejp t1http.server.CGIHTTPRequestHandler.cgi_directories(jm jn dhttps://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler.cgi_directoriesjp t3http.server.SimpleHTTPRequestHandler.extensions_map(jm jn fhttps://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.extensions_mapjp t3http.server.SimpleHTTPRequestHandler.server_version(jm jn fhttps://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.server_versionjp timaplib.IMAP4.PROTOCOL_VERSION(jm jn Mhttps://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.PROTOCOL_VERSIONjp timaplib.IMAP4.debug(jm jn Bhttps://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.debugjp timaplib.IMAP4.utf8_enabled(jm jn Ihttps://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.utf8_enabledjp timportlib.abc.FileLoader.name(jm jn Nhttps://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.namejp timportlib.abc.FileLoader.path(jm jn Nhttps://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.pathjp t%importlib.machinery.BYTECODE_SUFFIXES(jm jn Vhttps://docs.python.org/3/library/importlib.html#importlib.machinery.BYTECODE_SUFFIXESjp t+importlib.machinery.DEBUG_BYTECODE_SUFFIXES(jm jn \https://docs.python.org/3/library/importlib.html#importlib.machinery.DEBUG_BYTECODE_SUFFIXESjp t&importlib.machinery.EXTENSION_SUFFIXES(jm jn Whttps://docs.python.org/3/library/importlib.html#importlib.machinery.EXTENSION_SUFFIXESjp t,importlib.machinery.ExtensionFileLoader.name(jm jn ]https://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.namejp t,importlib.machinery.ExtensionFileLoader.path(jm jn ]https://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.pathjp t#importlib.machinery.FileFinder.path(jm jn Thttps://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.pathjp t%importlib.machinery.ModuleSpec.cached(jm jn Vhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.cachedjp t+importlib.machinery.ModuleSpec.has_location(jm jn \https://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.has_locationjp t%importlib.machinery.ModuleSpec.loader(jm jn Vhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loaderjp t+importlib.machinery.ModuleSpec.loader_state(jm jn \https://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loader_statejp t#importlib.machinery.ModuleSpec.name(jm jn Thttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.namejp t%importlib.machinery.ModuleSpec.origin(jm jn Vhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.originjp t%importlib.machinery.ModuleSpec.parent(jm jn Vhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.parentjp t9importlib.machinery.ModuleSpec.submodule_search_locations(jm jn jhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.submodule_search_locationsjp t/importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES(jm jn `https://docs.python.org/3/library/importlib.html#importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXESjp t#importlib.machinery.SOURCE_SUFFIXES(jm jn Thttps://docs.python.org/3/library/importlib.html#importlib.machinery.SOURCE_SUFFIXESjp t)importlib.machinery.SourceFileLoader.name(jm jn Zhttps://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.namejp t)importlib.machinery.SourceFileLoader.path(jm jn Zhttps://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.pathjp t-importlib.machinery.SourcelessFileLoader.name(jm jn ^https://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.namejp t-importlib.machinery.SourcelessFileLoader.path(jm jn ^https://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.pathjp t(importlib.resources.abc.Traversable.name(jm jn ghttps://docs.python.org/3/library/importlib.resources.abc.html#importlib.resources.abc.Traversable.namejp timportlib.util.MAGIC_NUMBER(jm jn Lhttps://docs.python.org/3/library/importlib.html#importlib.util.MAGIC_NUMBERjp tinspect.BoundArguments.args(jm jn Jhttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.argsjp t inspect.BoundArguments.arguments(jm jn Ohttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.argumentsjp tinspect.BoundArguments.kwargs(jm jn Lhttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.kwargsjp t inspect.BoundArguments.signature(jm jn Ohttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.signaturejp tinspect.FrameInfo.code_context(jm jn Mhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.code_contextjp tinspect.FrameInfo.filename(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.filenamejp tinspect.FrameInfo.frame(jm jn Fhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.framejp tinspect.FrameInfo.function(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.functionjp tinspect.FrameInfo.index(jm jn Fhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.indexjp tinspect.FrameInfo.lineno(jm jn Ghttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.linenojp tinspect.FrameInfo.positions(jm jn Jhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.positionsjp tinspect.Parameter.annotation(jm jn Khttps://docs.python.org/3/library/inspect.html#inspect.Parameter.annotationjp tinspect.Parameter.default(jm jn Hhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.defaultjp tinspect.Parameter.empty(jm jn Fhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.emptyjp tinspect.Parameter.kind(jm jn Ehttps://docs.python.org/3/library/inspect.html#inspect.Parameter.kindjp t"inspect.Parameter.kind.description(jm jn Qhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.kind.descriptionjp tinspect.Parameter.name(jm jn Ehttps://docs.python.org/3/library/inspect.html#inspect.Parameter.namejp tinspect.Signature.empty(jm jn Fhttps://docs.python.org/3/library/inspect.html#inspect.Signature.emptyjp tinspect.Signature.parameters(jm jn Khttps://docs.python.org/3/library/inspect.html#inspect.Signature.parametersjp t#inspect.Signature.return_annotation(jm jn Rhttps://docs.python.org/3/library/inspect.html#inspect.Signature.return_annotationjp tinspect.Traceback.code_context(jm jn Mhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.code_contextjp tinspect.Traceback.filename(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.Traceback.filenamejp tinspect.Traceback.function(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.Traceback.functionjp tinspect.Traceback.index(jm jn Fhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.indexjp tinspect.Traceback.lineno(jm jn Ghttps://docs.python.org/3/library/inspect.html#inspect.Traceback.linenojp tinspect.Traceback.positions(jm jn Jhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.positionsjp tinstance.__class__(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#instance.__class__jp tio.BufferedIOBase.raw(jm jn ?https://docs.python.org/3/library/io.html#io.BufferedIOBase.rawjp tio.FileIO.mode(jm jn 8https://docs.python.org/3/library/io.html#io.FileIO.modejp tio.FileIO.name(jm jn 8https://docs.python.org/3/library/io.html#io.FileIO.namejp tio.IOBase.closed(jm jn :https://docs.python.org/3/library/io.html#io.IOBase.closedjp tio.TextIOBase.buffer(jm jn >https://docs.python.org/3/library/io.html#io.TextIOBase.bufferjp tio.TextIOBase.encoding(jm jn @https://docs.python.org/3/library/io.html#io.TextIOBase.encodingjp tio.TextIOBase.errors(jm jn >https://docs.python.org/3/library/io.html#io.TextIOBase.errorsjp tio.TextIOBase.newlines(jm jn @https://docs.python.org/3/library/io.html#io.TextIOBase.newlinesjp tio.TextIOWrapper.line_buffering(jm jn Ihttps://docs.python.org/3/library/io.html#io.TextIOWrapper.line_bufferingjp tio.TextIOWrapper.write_through(jm jn Hhttps://docs.python.org/3/library/io.html#io.TextIOWrapper.write_throughjp t ipaddress.IPv4Address.compressed(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.compressedjp tipaddress.IPv4Address.exploded(jm jn Ohttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.explodedjp tipaddress.IPv4Address.is_global(jm jn Phttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_globaljp t#ipaddress.IPv4Address.is_link_local(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_link_localjp t!ipaddress.IPv4Address.is_loopback(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_loopbackjp t"ipaddress.IPv4Address.is_multicast(jm jn Shttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_multicastjp t ipaddress.IPv4Address.is_private(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_privatejp t!ipaddress.IPv4Address.is_reserved(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_reservedjp t$ipaddress.IPv4Address.is_unspecified(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_unspecifiedjp t#ipaddress.IPv4Address.max_prefixlen(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.max_prefixlenjp tipaddress.IPv4Address.packed(jm jn Mhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.packedjp t%ipaddress.IPv4Address.reverse_pointer(jm jn Vhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.reverse_pointerjp tipaddress.IPv4Address.version(jm jn Nhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.versionjp tipaddress.IPv4Interface.ip(jm jn Khttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.ipjp tipaddress.IPv4Interface.network(jm jn Phttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.networkjp t%ipaddress.IPv4Interface.with_hostmask(jm jn Vhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_hostmaskjp t$ipaddress.IPv4Interface.with_netmask(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_netmaskjp t&ipaddress.IPv4Interface.with_prefixlen(jm jn Whttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_prefixlenjp t'ipaddress.IPv4Network.broadcast_address(jm jn Xhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.broadcast_addressjp t ipaddress.IPv4Network.compressed(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.compressedjp tipaddress.IPv4Network.exploded(jm jn Ohttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.explodedjp tipaddress.IPv4Network.hostmask(jm jn Ohttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.hostmaskjp t#ipaddress.IPv4Network.is_link_local(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_link_localjp t!ipaddress.IPv4Network.is_loopback(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_loopbackjp t"ipaddress.IPv4Network.is_multicast(jm jn Shttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_multicastjp t ipaddress.IPv4Network.is_private(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_privatejp t!ipaddress.IPv4Network.is_reserved(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_reservedjp t$ipaddress.IPv4Network.is_unspecified(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_unspecifiedjp t#ipaddress.IPv4Network.max_prefixlen(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.max_prefixlenjp tipaddress.IPv4Network.netmask(jm jn Nhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.netmaskjp t%ipaddress.IPv4Network.network_address(jm jn Vhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.network_addressjp t#ipaddress.IPv4Network.num_addresses(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.num_addressesjp tipaddress.IPv4Network.prefixlen(jm jn Phttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.prefixlenjp tipaddress.IPv4Network.version(jm jn Nhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.versionjp t#ipaddress.IPv4Network.with_hostmask(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_hostmaskjp t"ipaddress.IPv4Network.with_netmask(jm jn Shttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_netmaskjp t$ipaddress.IPv4Network.with_prefixlen(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_prefixlenjp t ipaddress.IPv6Address.compressed(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.compressedjp tipaddress.IPv6Address.exploded(jm jn Ohttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.explodedjp t!ipaddress.IPv6Address.ipv4_mapped(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.ipv4_mappedjp tipaddress.IPv6Address.is_global(jm jn Phttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_globaljp t#ipaddress.IPv6Address.is_link_local(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_link_localjp t!ipaddress.IPv6Address.is_loopback(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_loopbackjp t"ipaddress.IPv6Address.is_multicast(jm jn Shttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_multicastjp t ipaddress.IPv6Address.is_private(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_privatejp t!ipaddress.IPv6Address.is_reserved(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_reservedjp t#ipaddress.IPv6Address.is_site_local(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_site_localjp t$ipaddress.IPv6Address.is_unspecified(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_unspecifiedjp t#ipaddress.IPv6Address.max_prefixlen(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.max_prefixlenjp tipaddress.IPv6Address.packed(jm jn Mhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.packedjp t%ipaddress.IPv6Address.reverse_pointer(jm jn Vhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.reverse_pointerjp tipaddress.IPv6Address.scope_id(jm jn Ohttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.scope_idjp tipaddress.IPv6Address.sixtofour(jm jn Phttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.sixtofourjp tipaddress.IPv6Address.teredo(jm jn Mhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.teredojp tipaddress.IPv6Address.version(jm jn Nhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.versionjp tipaddress.IPv6Interface.ip(jm jn Khttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.ipjp tipaddress.IPv6Interface.network(jm jn Phttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.networkjp t%ipaddress.IPv6Interface.with_hostmask(jm jn Vhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_hostmaskjp t$ipaddress.IPv6Interface.with_netmask(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_netmaskjp t&ipaddress.IPv6Interface.with_prefixlen(jm jn Whttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_prefixlenjp t'ipaddress.IPv6Network.broadcast_address(jm jn Xhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.broadcast_addressjp t ipaddress.IPv6Network.compressed(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.compressedjp tipaddress.IPv6Network.exploded(jm jn Ohttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.explodedjp tipaddress.IPv6Network.hostmask(jm jn Ohttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.hostmaskjp t#ipaddress.IPv6Network.is_link_local(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_link_localjp t!ipaddress.IPv6Network.is_loopback(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_loopbackjp t"ipaddress.IPv6Network.is_multicast(jm jn Shttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_multicastjp t ipaddress.IPv6Network.is_private(jm jn Qhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_privatejp t!ipaddress.IPv6Network.is_reserved(jm jn Rhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_reservedjp t#ipaddress.IPv6Network.is_site_local(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_site_localjp t$ipaddress.IPv6Network.is_unspecified(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_unspecifiedjp t#ipaddress.IPv6Network.max_prefixlen(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.max_prefixlenjp tipaddress.IPv6Network.netmask(jm jn Nhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.netmaskjp t%ipaddress.IPv6Network.network_address(jm jn Vhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.network_addressjp t#ipaddress.IPv6Network.num_addresses(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.num_addressesjp tipaddress.IPv6Network.prefixlen(jm jn Phttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.prefixlenjp tipaddress.IPv6Network.version(jm jn Nhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.versionjp t#ipaddress.IPv6Network.with_hostmask(jm jn Thttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_hostmaskjp t"ipaddress.IPv6Network.with_netmask(jm jn Shttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_netmaskjp t$ipaddress.IPv6Network.with_prefixlen(jm jn Uhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_prefixlenjp tjson.JSONDecodeError.colno(jm jn Fhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.colnojp tjson.JSONDecodeError.doc(jm jn Dhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.docjp tjson.JSONDecodeError.lineno(jm jn Ghttps://docs.python.org/3/library/json.html#json.JSONDecodeError.linenojp tjson.JSONDecodeError.msg(jm jn Dhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.msgjp tjson.JSONDecodeError.pos(jm jn Dhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.posjp tlogging.Logger.propagate(jm jn Ghttps://docs.python.org/3/library/logging.html#logging.Logger.propagatejp t logging.StreamHandler.terminator(jm jn Xhttps://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler.terminatorjp t*logging.handlers.BaseRotatingHandler.namer(jm jn bhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.namerjp t,logging.handlers.BaseRotatingHandler.rotator(jm jn dhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotatorjp tlogging.lastResort(jm jn Ahttps://docs.python.org/3/library/logging.html#logging.lastResortjp tlzma.LZMADecompressor.check(jm jn Ghttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.checkjp tlzma.LZMADecompressor.eof(jm jn Ehttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.eofjp t!lzma.LZMADecompressor.needs_input(jm jn Mhttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.needs_inputjp t!lzma.LZMADecompressor.unused_data(jm jn Mhttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.unused_datajp tmemoryview.c_contiguous(jm jn Ghttps://docs.python.org/3/library/stdtypes.html#memoryview.c_contiguousjp tmemoryview.contiguous(jm jn Ehttps://docs.python.org/3/library/stdtypes.html#memoryview.contiguousjp tmemoryview.f_contiguous(jm jn Ghttps://docs.python.org/3/library/stdtypes.html#memoryview.f_contiguousjp tmemoryview.format(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#memoryview.formatjp tmemoryview.itemsize(jm jn Chttps://docs.python.org/3/library/stdtypes.html#memoryview.itemsizejp tmemoryview.nbytes(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#memoryview.nbytesjp tmemoryview.ndim(jm jn ?https://docs.python.org/3/library/stdtypes.html#memoryview.ndimjp tmemoryview.obj(jm jn >https://docs.python.org/3/library/stdtypes.html#memoryview.objjp tmemoryview.readonly(jm jn Chttps://docs.python.org/3/library/stdtypes.html#memoryview.readonlyjp tmemoryview.shape(jm jn @https://docs.python.org/3/library/stdtypes.html#memoryview.shapejp tmemoryview.strides(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#memoryview.stridesjp tmemoryview.suboffsets(jm jn Ehttps://docs.python.org/3/library/stdtypes.html#memoryview.suboffsetsjp t!mimetypes.MimeTypes.encodings_map(jm jn Rhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.encodings_mapjp tmimetypes.MimeTypes.suffix_map(jm jn Ohttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.suffix_mapjp tmimetypes.MimeTypes.types_map(jm jn Nhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_mapjp t!mimetypes.MimeTypes.types_map_inv(jm jn Rhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_map_invjp tmmap.mmap.closed(jm jn https://docs.python.org/3/library/netrc.html#netrc.netrc.hostsjp tnetrc.netrc.macros(jm jn ?https://docs.python.org/3/library/netrc.html#netrc.netrc.macrosjp t nntplib.NNTP.nntp_implementation(jm jn Ohttps://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nntp_implementationjp tnntplib.NNTP.nntp_version(jm jn Hhttps://docs.python.org/3/library/nntplib.html#nntplib.NNTP.nntp_versionjp tnntplib.NNTPError.response(jm jn Ihttps://docs.python.org/3/library/nntplib.html#nntplib.NNTPError.responsejp tnumbers.Complex.imag(jm jn Chttps://docs.python.org/3/library/numbers.html#numbers.Complex.imagjp tnumbers.Complex.real(jm jn Chttps://docs.python.org/3/library/numbers.html#numbers.Complex.realjp tnumbers.Rational.denominator(jm jn Khttps://docs.python.org/3/library/numbers.html#numbers.Rational.denominatorjp tnumbers.Rational.numerator(jm jn Ihttps://docs.python.org/3/library/numbers.html#numbers.Rational.numeratorjp tobject.__dict__(jm jn ?https://docs.python.org/3/library/stdtypes.html#object.__dict__jp toptparse.Option.ACTIONS(jm jn Ghttps://docs.python.org/3/library/optparse.html#optparse.Option.ACTIONSjp t$optparse.Option.ALWAYS_TYPED_ACTIONS(jm jn Thttps://docs.python.org/3/library/optparse.html#optparse.Option.ALWAYS_TYPED_ACTIONSjp toptparse.Option.STORE_ACTIONS(jm jn Mhttps://docs.python.org/3/library/optparse.html#optparse.Option.STORE_ACTIONSjp toptparse.Option.TYPED_ACTIONS(jm jn Mhttps://docs.python.org/3/library/optparse.html#optparse.Option.TYPED_ACTIONSjp toptparse.Option.TYPES(jm jn Ehttps://docs.python.org/3/library/optparse.html#optparse.Option.TYPESjp toptparse.Option.TYPE_CHECKER(jm jn Lhttps://docs.python.org/3/library/optparse.html#optparse.Option.TYPE_CHECKERjp toptparse.Option.action(jm jn Fhttps://docs.python.org/3/library/optparse.html#optparse.Option.actionjp toptparse.Option.callback(jm jn Hhttps://docs.python.org/3/library/optparse.html#optparse.Option.callbackjp toptparse.Option.callback_args(jm jn Mhttps://docs.python.org/3/library/optparse.html#optparse.Option.callback_argsjp toptparse.Option.callback_kwargs(jm jn Ohttps://docs.python.org/3/library/optparse.html#optparse.Option.callback_kwargsjp toptparse.Option.choices(jm jn Ghttps://docs.python.org/3/library/optparse.html#optparse.Option.choicesjp toptparse.Option.const(jm jn Ehttps://docs.python.org/3/library/optparse.html#optparse.Option.constjp toptparse.Option.default(jm jn Ghttps://docs.python.org/3/library/optparse.html#optparse.Option.defaultjp toptparse.Option.dest(jm jn Dhttps://docs.python.org/3/library/optparse.html#optparse.Option.destjp toptparse.Option.help(jm jn Dhttps://docs.python.org/3/library/optparse.html#optparse.Option.helpjp toptparse.Option.metavar(jm jn Ghttps://docs.python.org/3/library/optparse.html#optparse.Option.metavarjp toptparse.Option.nargs(jm jn Ehttps://docs.python.org/3/library/optparse.html#optparse.Option.nargsjp toptparse.Option.type(jm jn Dhttps://docs.python.org/3/library/optparse.html#optparse.Option.typejp tos.DirEntry.name(jm jn :https://docs.python.org/3/library/os.html#os.DirEntry.namejp tos.DirEntry.path(jm jn :https://docs.python.org/3/library/os.html#os.DirEntry.pathjp tos.sched_param.sched_priority(jm jn Ghttps://docs.python.org/3/library/os.html#os.sched_param.sched_priorityjp tos.stat_result.st_atime(jm jn Ahttps://docs.python.org/3/library/os.html#os.stat_result.st_atimejp tos.stat_result.st_atime_ns(jm jn Dhttps://docs.python.org/3/library/os.html#os.stat_result.st_atime_nsjp tos.stat_result.st_birthtime(jm jn Ehttps://docs.python.org/3/library/os.html#os.stat_result.st_birthtimejp tos.stat_result.st_blksize(jm jn Chttps://docs.python.org/3/library/os.html#os.stat_result.st_blksizejp tos.stat_result.st_blocks(jm jn Bhttps://docs.python.org/3/library/os.html#os.stat_result.st_blocksjp tos.stat_result.st_creator(jm jn Chttps://docs.python.org/3/library/os.html#os.stat_result.st_creatorjp tos.stat_result.st_ctime(jm jn Ahttps://docs.python.org/3/library/os.html#os.stat_result.st_ctimejp tos.stat_result.st_ctime_ns(jm jn Dhttps://docs.python.org/3/library/os.html#os.stat_result.st_ctime_nsjp tos.stat_result.st_dev(jm jn ?https://docs.python.org/3/library/os.html#os.stat_result.st_devjp t!os.stat_result.st_file_attributes(jm jn Khttps://docs.python.org/3/library/os.html#os.stat_result.st_file_attributesjp tos.stat_result.st_flags(jm jn Ahttps://docs.python.org/3/library/os.html#os.stat_result.st_flagsjp tos.stat_result.st_fstype(jm jn Bhttps://docs.python.org/3/library/os.html#os.stat_result.st_fstypejp tos.stat_result.st_gen(jm jn ?https://docs.python.org/3/library/os.html#os.stat_result.st_genjp tos.stat_result.st_gid(jm jn ?https://docs.python.org/3/library/os.html#os.stat_result.st_gidjp tos.stat_result.st_ino(jm jn ?https://docs.python.org/3/library/os.html#os.stat_result.st_inojp tos.stat_result.st_mode(jm jn @https://docs.python.org/3/library/os.html#os.stat_result.st_modejp tos.stat_result.st_mtime(jm jn Ahttps://docs.python.org/3/library/os.html#os.stat_result.st_mtimejp tos.stat_result.st_mtime_ns(jm jn Dhttps://docs.python.org/3/library/os.html#os.stat_result.st_mtime_nsjp tos.stat_result.st_nlink(jm jn Ahttps://docs.python.org/3/library/os.html#os.stat_result.st_nlinkjp tos.stat_result.st_rdev(jm jn @https://docs.python.org/3/library/os.html#os.stat_result.st_rdevjp tos.stat_result.st_reparse_tag(jm jn Ghttps://docs.python.org/3/library/os.html#os.stat_result.st_reparse_tagjp tos.stat_result.st_rsize(jm jn Ahttps://docs.python.org/3/library/os.html#os.stat_result.st_rsizejp tos.stat_result.st_size(jm jn @https://docs.python.org/3/library/os.html#os.stat_result.st_sizejp tos.stat_result.st_type(jm jn @https://docs.python.org/3/library/os.html#os.stat_result.st_typejp tos.stat_result.st_uid(jm jn ?https://docs.python.org/3/library/os.html#os.stat_result.st_uidjp tos.terminal_size.columns(jm jn Bhttps://docs.python.org/3/library/os.html#os.terminal_size.columnsjp tos.terminal_size.lines(jm jn @https://docs.python.org/3/library/os.html#os.terminal_size.linesjp t#ossaudiodev.oss_audio_device.closed(jm jn Vhttps://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.closedjp t!ossaudiodev.oss_audio_device.mode(jm jn Thttps://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.modejp t!ossaudiodev.oss_audio_device.name(jm jn Thttps://docs.python.org/3/library/ossaudiodev.html#ossaudiodev.oss_audio_device.namejp tpathlib.PurePath.anchor(jm jn Fhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.anchorjp tpathlib.PurePath.drive(jm jn Ehttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.drivejp tpathlib.PurePath.name(jm jn Dhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.namejp tpathlib.PurePath.parent(jm jn Fhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parentjp tpathlib.PurePath.parents(jm jn Ghttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parentsjp tpathlib.PurePath.parts(jm jn Ehttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.partsjp tpathlib.PurePath.root(jm jn Dhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.rootjp tpathlib.PurePath.stem(jm jn Dhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.stemjp tpathlib.PurePath.suffix(jm jn Fhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffixjp tpathlib.PurePath.suffixes(jm jn Hhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffixesjp tpickle.Pickler.dispatch_table(jm jn Khttps://docs.python.org/3/library/pickle.html#pickle.Pickler.dispatch_tablejp tpickle.Pickler.fast(jm jn Ahttps://docs.python.org/3/library/pickle.html#pickle.Pickler.fastjp t+py_compile.PycInvalidationMode.CHECKED_HASH(jm jn ]https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.CHECKED_HASHjp t(py_compile.PycInvalidationMode.TIMESTAMP(jm jn Zhttps://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.TIMESTAMPjp t-py_compile.PycInvalidationMode.UNCHECKED_HASH(jm jn _https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.UNCHECKED_HASHjp tpyclbr.Class.children(jm jn Chttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.childrenjp tpyclbr.Class.file(jm jn ?https://docs.python.org/3/library/pyclbr.html#pyclbr.Class.filejp tpyclbr.Class.lineno(jm jn Ahttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.linenojp tpyclbr.Class.methods(jm jn Bhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.methodsjp tpyclbr.Class.module(jm jn Ahttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.modulejp tpyclbr.Class.name(jm jn ?https://docs.python.org/3/library/pyclbr.html#pyclbr.Class.namejp tpyclbr.Class.parent(jm jn Ahttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.parentjp tpyclbr.Class.super(jm jn @https://docs.python.org/3/library/pyclbr.html#pyclbr.Class.superjp tpyclbr.Function.children(jm jn Fhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.childrenjp tpyclbr.Function.file(jm jn Bhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.filejp tpyclbr.Function.is_async(jm jn Fhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.is_asyncjp tpyclbr.Function.lineno(jm jn Dhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.linenojp tpyclbr.Function.module(jm jn Dhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.modulejp tpyclbr.Function.name(jm jn Bhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.namejp tpyclbr.Function.parent(jm jn Dhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.parentjp t range.start(jm jn ;https://docs.python.org/3/library/stdtypes.html#range.startjp t range.step(jm jn :https://docs.python.org/3/library/stdtypes.html#range.stepjp t range.stop(jm jn :https://docs.python.org/3/library/stdtypes.html#range.stopjp tre.Match.endpos(jm jn 9https://docs.python.org/3/library/re.html#re.Match.endposjp tre.Match.lastgroup(jm jn https://docs.python.org/3/library/shlex.html#shlex.shlex.debugjp tshlex.shlex.eof(jm jn https://docs.python.org/3/library/shlex.html#shlex.shlex.tokenjp tshlex.shlex.whitespace(jm jn Chttps://docs.python.org/3/library/shlex.html#shlex.shlex.whitespacejp tshlex.shlex.whitespace_split(jm jn Ihttps://docs.python.org/3/library/shlex.html#shlex.shlex.whitespace_splitjp tshlex.shlex.wordchars(jm jn Bhttps://docs.python.org/3/library/shlex.html#shlex.shlex.wordcharsjp t$shutil.rmtree.avoids_symlink_attacks(jm jn Rhttps://docs.python.org/3/library/shutil.html#shutil.rmtree.avoids_symlink_attacksjp tsmtpd.SMTPChannel.addr(jm jn Chttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.addrjp tsmtpd.SMTPChannel.conn(jm jn Chttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.connjp tsmtpd.SMTPChannel.fqdn(jm jn Chttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.fqdnjp tsmtpd.SMTPChannel.mailfrom(jm jn Ghttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.mailfromjp tsmtpd.SMTPChannel.peer(jm jn Chttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.peerjp tsmtpd.SMTPChannel.rcpttos(jm jn Fhttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.rcpttosjp tsmtpd.SMTPChannel.received_data(jm jn Lhttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.received_datajp t smtpd.SMTPChannel.received_lines(jm jn Mhttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.received_linesjp tsmtpd.SMTPChannel.seen_greeting(jm jn Lhttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.seen_greetingjp tsmtpd.SMTPChannel.smtp_server(jm jn Jhttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.smtp_serverjp tsmtpd.SMTPChannel.smtp_state(jm jn Ihttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPChannel.smtp_statejp tsmtpd.SMTPServer.channel_class(jm jn Khttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPServer.channel_classjp tsocket.socket.family(jm jn Bhttps://docs.python.org/3/library/socket.html#socket.socket.familyjp tsocket.socket.proto(jm jn Ahttps://docs.python.org/3/library/socket.html#socket.socket.protojp tsocket.socket.type(jm jn @https://docs.python.org/3/library/socket.html#socket.socket.typejp t+socketserver.BaseServer.RequestHandlerClass(jm jn _https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.RequestHandlerClassjp t&socketserver.BaseServer.address_family(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.address_familyjp t+socketserver.BaseServer.allow_reuse_address(jm jn _https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.allow_reuse_addressjp t*socketserver.BaseServer.request_queue_size(jm jn ^https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.request_queue_sizejp t&socketserver.BaseServer.server_address(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_addressjp tsocketserver.BaseServer.socket(jm jn Rhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.socketjp t#socketserver.BaseServer.socket_type(jm jn Whttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.socket_typejp tsocketserver.BaseServer.timeout(jm jn Shttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.timeoutjp t!sqlite3.Connection.in_transaction(jm jn Phttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.in_transactionjp t"sqlite3.Connection.isolation_level(jm jn Qhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.isolation_leveljp tsqlite3.Connection.row_factory(jm jn Mhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.row_factoryjp tsqlite3.Connection.text_factory(jm jn Nhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.text_factoryjp t sqlite3.Connection.total_changes(jm jn Ohttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.total_changesjp tsqlite3.Cursor.arraysize(jm jn Ghttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.arraysizejp tsqlite3.Cursor.connection(jm jn Hhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.connectionjp tsqlite3.Cursor.description(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.descriptionjp tsqlite3.Cursor.lastrowid(jm jn Ghttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.lastrowidjp tsqlite3.Cursor.row_factory(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.row_factoryjp tsqlite3.Cursor.rowcount(jm jn Fhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.rowcountjp tsqlite3.Error.sqlite_errorcode(jm jn Mhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Error.sqlite_errorcodejp tsqlite3.Error.sqlite_errorname(jm jn Mhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Error.sqlite_errornamejp tssl.MemoryBIO.eof(jm jn https://docs.python.org/3/library/ssl.html#ssl.SSLError.reasonjp tssl.SSLSession.has_ticket(jm jn Dhttps://docs.python.org/3/library/ssl.html#ssl.SSLSession.has_ticketjp tssl.SSLSession.id(jm jn https://docs.python.org/3/library/ssl.html#ssl.SSLSession.timejp tssl.SSLSession.timeout(jm jn Ahttps://docs.python.org/3/library/ssl.html#ssl.SSLSession.timeoutjp tssl.SSLSocket.context(jm jn @https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.contextjp tssl.SSLSocket.server_hostname(jm jn Hhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.server_hostnamejp tssl.SSLSocket.server_side(jm jn Dhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.server_sidejp tssl.SSLSocket.session(jm jn @https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.sessionjp tssl.SSLSocket.session_reused(jm jn Ghttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.session_reusedjp t ssl.TLSVersion.MAXIMUM_SUPPORTED(jm jn Khttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.MAXIMUM_SUPPORTEDjp t ssl.TLSVersion.MINIMUM_SUPPORTED(jm jn Khttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.MINIMUM_SUPPORTEDjp tssl.TLSVersion.SSLv3(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.TLSVersion.SSLv3jp tssl.TLSVersion.TLSv1(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1jp tssl.TLSVersion.TLSv1_1(jm jn Ahttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1_1jp tssl.TLSVersion.TLSv1_2(jm jn Ahttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1_2jp tssl.TLSVersion.TLSv1_3(jm jn Ahttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1_3jp tstatistics.NormalDist.mean(jm jn Lhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.meanjp tstatistics.NormalDist.median(jm jn Nhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.medianjp tstatistics.NormalDist.mode(jm jn Lhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.modejp tstatistics.NormalDist.stdev(jm jn Mhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.stdevjp tstatistics.NormalDist.variance(jm jn Phttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.variancejp tstring.Template.template(jm jn Fhttps://docs.python.org/3/library/string.html#string.Template.templatejp tstruct.Struct.format(jm jn Bhttps://docs.python.org/3/library/struct.html#struct.Struct.formatjp tstruct.Struct.size(jm jn @https://docs.python.org/3/library/struct.html#struct.Struct.sizejp t!subprocess.CalledProcessError.cmd(jm jn Shttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.cmdjp t$subprocess.CalledProcessError.output(jm jn Vhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.outputjp t(subprocess.CalledProcessError.returncode(jm jn Zhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.returncodejp t$subprocess.CalledProcessError.stderr(jm jn Vhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.stderrjp t$subprocess.CalledProcessError.stdout(jm jn Vhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.stdoutjp t subprocess.CompletedProcess.args(jm jn Rhttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.argsjp t&subprocess.CompletedProcess.returncode(jm jn Xhttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.returncodejp t"subprocess.CompletedProcess.stderr(jm jn Thttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.stderrjp t"subprocess.CompletedProcess.stdout(jm jn Thttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.stdoutjp tsubprocess.Popen.args(jm jn Ghttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.argsjp tsubprocess.Popen.pid(jm jn Fhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.pidjp tsubprocess.Popen.returncode(jm jn Mhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.returncodejp tsubprocess.Popen.stderr(jm jn Ihttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.stderrjp tsubprocess.Popen.stdin(jm jn Hhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdinjp tsubprocess.Popen.stdout(jm jn Ihttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdoutjp tsubprocess.STARTUPINFO.dwFlags(jm jn Phttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.dwFlagsjp t subprocess.STARTUPINFO.hStdError(jm jn Rhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdErrorjp t subprocess.STARTUPINFO.hStdInput(jm jn Rhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdInputjp t!subprocess.STARTUPINFO.hStdOutput(jm jn Shttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdOutputjp t&subprocess.STARTUPINFO.lpAttributeList(jm jn Xhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.lpAttributeListjp t"subprocess.STARTUPINFO.wShowWindow(jm jn Thttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.wShowWindowjp tsubprocess.TimeoutExpired.cmd(jm jn Ohttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.cmdjp t subprocess.TimeoutExpired.output(jm jn Rhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.outputjp t subprocess.TimeoutExpired.stderr(jm jn Rhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.stderrjp t subprocess.TimeoutExpired.stdout(jm jn Rhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.stdoutjp t!subprocess.TimeoutExpired.timeout(jm jn Shttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.timeoutjp ttarfile.FilterError.tarinfo(jm jn Jhttps://docs.python.org/3/library/tarfile.html#tarfile.FilterError.tarinfojp ttarfile.TarFile.errorlevel(jm jn Ihttps://docs.python.org/3/library/tarfile.html#tarfile.TarFile.errorleveljp t!tarfile.TarFile.extraction_filter(jm jn Phttps://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extraction_filterjp ttarfile.TarFile.pax_headers(jm jn Jhttps://docs.python.org/3/library/tarfile.html#tarfile.TarFile.pax_headersjp ttarfile.TarInfo.gid(jm jn Bhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gidjp ttarfile.TarInfo.gname(jm jn Dhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gnamejp ttarfile.TarInfo.linkname(jm jn Ghttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.linknamejp ttarfile.TarInfo.mode(jm jn Chttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.modejp ttarfile.TarInfo.mtime(jm jn Dhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.mtimejp ttarfile.TarInfo.name(jm jn Chttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.namejp ttarfile.TarInfo.pax_headers(jm jn Jhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.pax_headersjp ttarfile.TarInfo.size(jm jn Chttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.sizejp ttarfile.TarInfo.type(jm jn Chttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.typejp ttarfile.TarInfo.uid(jm jn Bhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.uidjp ttarfile.TarInfo.uname(jm jn Dhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.unamejp t%textwrap.TextWrapper.break_long_words(jm jn Uhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_long_wordsjp t%textwrap.TextWrapper.break_on_hyphens(jm jn Uhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_on_hyphensjp t$textwrap.TextWrapper.drop_whitespace(jm jn Thttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.drop_whitespacejp t textwrap.TextWrapper.expand_tabs(jm jn Phttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.expand_tabsjp t)textwrap.TextWrapper.fix_sentence_endings(jm jn Yhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.fix_sentence_endingsjp t#textwrap.TextWrapper.initial_indent(jm jn Shttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.initial_indentjp ttextwrap.TextWrapper.max_lines(jm jn Nhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.max_linesjp t textwrap.TextWrapper.placeholder(jm jn Phttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.placeholderjp t'textwrap.TextWrapper.replace_whitespace(jm jn Whttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.replace_whitespacejp t&textwrap.TextWrapper.subsequent_indent(jm jn Vhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.subsequent_indentjp ttextwrap.TextWrapper.tabsize(jm jn Lhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.tabsizejp ttextwrap.TextWrapper.width(jm jn Jhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.widthjp tthreading.Barrier.broken(jm jn Ihttps://docs.python.org/3/library/threading.html#threading.Barrier.brokenjp tthreading.Barrier.n_waiting(jm jn Lhttps://docs.python.org/3/library/threading.html#threading.Barrier.n_waitingjp tthreading.Barrier.parties(jm jn Jhttps://docs.python.org/3/library/threading.html#threading.Barrier.partiesjp tthreading.Thread.daemon(jm jn Hhttps://docs.python.org/3/library/threading.html#threading.Thread.daemonjp tthreading.Thread.ident(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.Thread.identjp tthreading.Thread.name(jm jn Fhttps://docs.python.org/3/library/threading.html#threading.Thread.namejp tthreading.Thread.native_id(jm jn Khttps://docs.python.org/3/library/threading.html#threading.Thread.native_idjp ttkinter.Tk.children(jm jn Bhttps://docs.python.org/3/library/tkinter.html#tkinter.Tk.childrenjp ttkinter.Tk.master(jm jn @https://docs.python.org/3/library/tkinter.html#tkinter.Tk.masterjp t tkinter.Tk.tk(jm jn https://docs.python.org/3/library/uuid.html#uuid.SafeUUID.safejp tuuid.SafeUUID.unknown(jm jn Ahttps://docs.python.org/3/library/uuid.html#uuid.SafeUUID.unknownjp tuuid.SafeUUID.unsafe(jm jn @https://docs.python.org/3/library/uuid.html#uuid.SafeUUID.unsafejp tuuid.UUID.bytes(jm jn ;https://docs.python.org/3/library/uuid.html#uuid.UUID.bytesjp tuuid.UUID.bytes_le(jm jn >https://docs.python.org/3/library/uuid.html#uuid.UUID.bytes_lejp tuuid.UUID.fields(jm jn https://docs.python.org/3/library/array.html#array.array.countjp tarray.array.extend(jm jn ?https://docs.python.org/3/library/array.html#array.array.extendjp tarray.array.frombytes(jm jn Bhttps://docs.python.org/3/library/array.html#array.array.frombytesjp tarray.array.fromfile(jm jn Ahttps://docs.python.org/3/library/array.html#array.array.fromfilejp tarray.array.fromlist(jm jn Ahttps://docs.python.org/3/library/array.html#array.array.fromlistjp tarray.array.fromunicode(jm jn Dhttps://docs.python.org/3/library/array.html#array.array.fromunicodejp tarray.array.index(jm jn >https://docs.python.org/3/library/array.html#array.array.indexjp tarray.array.insert(jm jn ?https://docs.python.org/3/library/array.html#array.array.insertjp tarray.array.pop(jm jn https://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_breakjp tbdb.Bdb.dispatch_call(jm jn @https://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_calljp tbdb.Bdb.dispatch_exception(jm jn Ehttps://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_exceptionjp tbdb.Bdb.dispatch_line(jm jn @https://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_linejp tbdb.Bdb.dispatch_return(jm jn Bhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_returnjp tbdb.Bdb.do_clear(jm jn ;https://docs.python.org/3/library/bdb.html#bdb.Bdb.do_clearjp tbdb.Bdb.format_stack_entry(jm jn Ehttps://docs.python.org/3/library/bdb.html#bdb.Bdb.format_stack_entryjp tbdb.Bdb.get_all_breaks(jm jn Ahttps://docs.python.org/3/library/bdb.html#bdb.Bdb.get_all_breaksjp tbdb.Bdb.get_bpbynumber(jm jn Ahttps://docs.python.org/3/library/bdb.html#bdb.Bdb.get_bpbynumberjp tbdb.Bdb.get_break(jm jn https://docs.python.org/3/library/bdb.html#bdb.Bdb.user_returnjp tbdb.Breakpoint.bpformat(jm jn Bhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpformatjp tbdb.Breakpoint.bpprint(jm jn Ahttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpprintjp tbdb.Breakpoint.deleteMe(jm jn Bhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.deleteMejp tbdb.Breakpoint.disable(jm jn Ahttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.disablejp tbdb.Breakpoint.enable(jm jn @https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.enablejp tbytearray.capitalize(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#bytearray.capitalizejp tbytearray.center(jm jn @https://docs.python.org/3/library/stdtypes.html#bytearray.centerjp tbytearray.count(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.countjp tbytearray.decode(jm jn @https://docs.python.org/3/library/stdtypes.html#bytearray.decodejp tbytearray.endswith(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#bytearray.endswithjp tbytearray.expandtabs(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#bytearray.expandtabsjp tbytearray.find(jm jn >https://docs.python.org/3/library/stdtypes.html#bytearray.findjp tbytearray.fromhex(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.fromhexjp t bytearray.hex(jm jn =https://docs.python.org/3/library/stdtypes.html#bytearray.hexjp tbytearray.index(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.indexjp tbytearray.isalnum(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.isalnumjp tbytearray.isalpha(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.isalphajp tbytearray.isascii(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.isasciijp tbytearray.isdigit(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.isdigitjp tbytearray.islower(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.islowerjp tbytearray.isspace(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.isspacejp tbytearray.istitle(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.istitlejp tbytearray.isupper(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.isupperjp tbytearray.join(jm jn >https://docs.python.org/3/library/stdtypes.html#bytearray.joinjp tbytearray.ljust(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.ljustjp tbytearray.lower(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.lowerjp tbytearray.lstrip(jm jn @https://docs.python.org/3/library/stdtypes.html#bytearray.lstripjp tbytearray.maketrans(jm jn Chttps://docs.python.org/3/library/stdtypes.html#bytearray.maketransjp tbytearray.partition(jm jn Chttps://docs.python.org/3/library/stdtypes.html#bytearray.partitionjp tbytearray.removeprefix(jm jn Fhttps://docs.python.org/3/library/stdtypes.html#bytearray.removeprefixjp tbytearray.removesuffix(jm jn Fhttps://docs.python.org/3/library/stdtypes.html#bytearray.removesuffixjp tbytearray.replace(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#bytearray.replacejp tbytearray.rfind(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.rfindjp tbytearray.rindex(jm jn @https://docs.python.org/3/library/stdtypes.html#bytearray.rindexjp tbytearray.rjust(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.rjustjp tbytearray.rpartition(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#bytearray.rpartitionjp tbytearray.rsplit(jm jn @https://docs.python.org/3/library/stdtypes.html#bytearray.rsplitjp tbytearray.rstrip(jm jn @https://docs.python.org/3/library/stdtypes.html#bytearray.rstripjp tbytearray.split(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.splitjp tbytearray.splitlines(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#bytearray.splitlinesjp tbytearray.startswith(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#bytearray.startswithjp tbytearray.strip(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.stripjp tbytearray.swapcase(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#bytearray.swapcasejp tbytearray.title(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.titlejp tbytearray.translate(jm jn Chttps://docs.python.org/3/library/stdtypes.html#bytearray.translatejp tbytearray.upper(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.upperjp tbytearray.zfill(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytearray.zfilljp tbytes.capitalize(jm jn @https://docs.python.org/3/library/stdtypes.html#bytes.capitalizejp t bytes.center(jm jn https://docs.python.org/3/library/stdtypes.html#bytes.endswithjp tbytes.expandtabs(jm jn @https://docs.python.org/3/library/stdtypes.html#bytes.expandtabsjp t bytes.find(jm jn :https://docs.python.org/3/library/stdtypes.html#bytes.findjp t bytes.fromhex(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.fromhexjp t bytes.hex(jm jn 9https://docs.python.org/3/library/stdtypes.html#bytes.hexjp t bytes.index(jm jn ;https://docs.python.org/3/library/stdtypes.html#bytes.indexjp t bytes.isalnum(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.isalnumjp t bytes.isalpha(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.isalphajp t bytes.isascii(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.isasciijp t bytes.isdigit(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.isdigitjp t bytes.islower(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.islowerjp t bytes.isspace(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.isspacejp t bytes.istitle(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.istitlejp t bytes.isupper(jm jn =https://docs.python.org/3/library/stdtypes.html#bytes.isupperjp t bytes.join(jm jn :https://docs.python.org/3/library/stdtypes.html#bytes.joinjp t bytes.ljust(jm jn ;https://docs.python.org/3/library/stdtypes.html#bytes.ljustjp t bytes.lower(jm jn ;https://docs.python.org/3/library/stdtypes.html#bytes.lowerjp t bytes.lstrip(jm jn https://docs.python.org/3/library/stdtypes.html#bytes.swapcasejp t bytes.title(jm jn ;https://docs.python.org/3/library/stdtypes.html#bytes.titlejp tbytes.translate(jm jn ?https://docs.python.org/3/library/stdtypes.html#bytes.translatejp t bytes.upper(jm jn ;https://docs.python.org/3/library/stdtypes.html#bytes.upperjp t bytes.zfill(jm jn ;https://docs.python.org/3/library/stdtypes.html#bytes.zfilljp tbz2.BZ2Compressor.compress(jm jn Ehttps://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.compressjp tbz2.BZ2Compressor.flush(jm jn Bhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.flushjp tbz2.BZ2Decompressor.decompress(jm jn Ihttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.decompressjp tbz2.BZ2File.peek(jm jn ;https://docs.python.org/3/library/bz2.html#bz2.BZ2File.peekjp t calendar.Calendar.itermonthdates(jm jn Phttps://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdatesjp tcalendar.Calendar.itermonthdays(jm jn Ohttps://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdaysjp t calendar.Calendar.itermonthdays2(jm jn Phttps://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdays2jp t calendar.Calendar.itermonthdays3(jm jn Phttps://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdays3jp t calendar.Calendar.itermonthdays4(jm jn Phttps://docs.python.org/3/library/calendar.html#calendar.Calendar.itermonthdays4jp tcalendar.Calendar.iterweekdays(jm jn Nhttps://docs.python.org/3/library/calendar.html#calendar.Calendar.iterweekdaysjp t$calendar.Calendar.monthdatescalendar(jm jn Thttps://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdatescalendarjp t$calendar.Calendar.monthdays2calendar(jm jn Thttps://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdays2calendarjp t#calendar.Calendar.monthdayscalendar(jm jn Shttps://docs.python.org/3/library/calendar.html#calendar.Calendar.monthdayscalendarjp t#calendar.Calendar.yeardatescalendar(jm jn Shttps://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardatescalendarjp t#calendar.Calendar.yeardays2calendar(jm jn Shttps://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardays2calendarjp t"calendar.Calendar.yeardayscalendar(jm jn Rhttps://docs.python.org/3/library/calendar.html#calendar.Calendar.yeardayscalendarjp t!calendar.HTMLCalendar.formatmonth(jm jn Qhttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatmonthjp t calendar.HTMLCalendar.formatyear(jm jn Phttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatyearjp t$calendar.HTMLCalendar.formatyearpage(jm jn Thttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.formatyearpagejp t!calendar.TextCalendar.formatmonth(jm jn Qhttps://docs.python.org/3/library/calendar.html#calendar.TextCalendar.formatmonthjp t calendar.TextCalendar.formatyear(jm jn Phttps://docs.python.org/3/library/calendar.html#calendar.TextCalendar.formatyearjp tcalendar.TextCalendar.prmonth(jm jn Mhttps://docs.python.org/3/library/calendar.html#calendar.TextCalendar.prmonthjp tcalendar.TextCalendar.pryear(jm jn Lhttps://docs.python.org/3/library/calendar.html#calendar.TextCalendar.pryearjp tcgi.FieldStorage.getfirst(jm jn Dhttps://docs.python.org/3/library/cgi.html#cgi.FieldStorage.getfirstjp tcgi.FieldStorage.getlist(jm jn Chttps://docs.python.org/3/library/cgi.html#cgi.FieldStorage.getlistjp tchunk.Chunk.close(jm jn >https://docs.python.org/3/library/chunk.html#chunk.Chunk.closejp tchunk.Chunk.getname(jm jn @https://docs.python.org/3/library/chunk.html#chunk.Chunk.getnamejp tchunk.Chunk.getsize(jm jn @https://docs.python.org/3/library/chunk.html#chunk.Chunk.getsizejp tchunk.Chunk.isatty(jm jn ?https://docs.python.org/3/library/chunk.html#chunk.Chunk.isattyjp tchunk.Chunk.read(jm jn =https://docs.python.org/3/library/chunk.html#chunk.Chunk.readjp tchunk.Chunk.seek(jm jn =https://docs.python.org/3/library/chunk.html#chunk.Chunk.seekjp tchunk.Chunk.skip(jm jn =https://docs.python.org/3/library/chunk.html#chunk.Chunk.skipjp tchunk.Chunk.tell(jm jn =https://docs.python.org/3/library/chunk.html#chunk.Chunk.telljp tclass.__instancecheck__(jm jn Jhttps://docs.python.org/3/reference/datamodel.html#class.__instancecheck__jp tclass.__subclasscheck__(jm jn Jhttps://docs.python.org/3/reference/datamodel.html#class.__subclasscheck__jp tclass.__subclasses__(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#class.__subclasses__jp t class.mro(jm jn 9https://docs.python.org/3/library/stdtypes.html#class.mrojp tcmd.Cmd.cmdloop(jm jn :https://docs.python.org/3/library/cmd.html#cmd.Cmd.cmdloopjp tcmd.Cmd.columnize(jm jn https://docs.python.org/3/library/dbm.html#dbm.ndbm.ndbm.closejp tdecimal.Context.Etiny(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Context.Etinyjp tdecimal.Context.Etop(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.Context.Etopjp tdecimal.Context.abs(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Context.absjp tdecimal.Context.add(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Context.addjp tdecimal.Context.canonical(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.canonicaljp tdecimal.Context.clear_flags(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Context.clear_flagsjp tdecimal.Context.clear_traps(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Context.clear_trapsjp tdecimal.Context.compare(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Context.comparejp tdecimal.Context.compare_signal(jm jn Mhttps://docs.python.org/3/library/decimal.html#decimal.Context.compare_signaljp tdecimal.Context.compare_total(jm jn Lhttps://docs.python.org/3/library/decimal.html#decimal.Context.compare_totaljp t!decimal.Context.compare_total_mag(jm jn Phttps://docs.python.org/3/library/decimal.html#decimal.Context.compare_total_magjp tdecimal.Context.copy(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.Context.copyjp tdecimal.Context.copy_abs(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_absjp tdecimal.Context.copy_decimal(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_decimaljp tdecimal.Context.copy_negate(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_negatejp tdecimal.Context.copy_sign(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_signjp tdecimal.Context.create_decimal(jm jn Mhttps://docs.python.org/3/library/decimal.html#decimal.Context.create_decimaljp t)decimal.Context.create_decimal_from_float(jm jn Xhttps://docs.python.org/3/library/decimal.html#decimal.Context.create_decimal_from_floatjp tdecimal.Context.divide(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Context.dividejp tdecimal.Context.divide_int(jm jn Ihttps://docs.python.org/3/library/decimal.html#decimal.Context.divide_intjp tdecimal.Context.divmod(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Context.divmodjp tdecimal.Context.exp(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Context.expjp tdecimal.Context.fma(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Context.fmajp tdecimal.Context.is_canonical(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Context.is_canonicaljp tdecimal.Context.is_finite(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_finitejp tdecimal.Context.is_infinite(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_infinitejp tdecimal.Context.is_nan(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Context.is_nanjp tdecimal.Context.is_normal(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_normaljp tdecimal.Context.is_qnan(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_qnanjp tdecimal.Context.is_signed(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_signedjp tdecimal.Context.is_snan(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_snanjp tdecimal.Context.is_subnormal(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Context.is_subnormaljp tdecimal.Context.is_zero(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_zerojp tdecimal.Context.ln(jm jn Ahttps://docs.python.org/3/library/decimal.html#decimal.Context.lnjp tdecimal.Context.log10(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Context.log10jp tdecimal.Context.logb(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.Context.logbjp tdecimal.Context.logical_and(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_andjp tdecimal.Context.logical_invert(jm jn Mhttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_invertjp tdecimal.Context.logical_or(jm jn Ihttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_orjp tdecimal.Context.logical_xor(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_xorjp tdecimal.Context.max(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Context.maxjp tdecimal.Context.max_mag(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Context.max_magjp tdecimal.Context.min(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Context.minjp tdecimal.Context.min_mag(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Context.min_magjp tdecimal.Context.minus(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Context.minusjp tdecimal.Context.multiply(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Context.multiplyjp tdecimal.Context.next_minus(jm jn Ihttps://docs.python.org/3/library/decimal.html#decimal.Context.next_minusjp tdecimal.Context.next_plus(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.next_plusjp tdecimal.Context.next_toward(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Context.next_towardjp tdecimal.Context.normalize(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.normalizejp tdecimal.Context.number_class(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Context.number_classjp tdecimal.Context.plus(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.Context.plusjp tdecimal.Context.power(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Context.powerjp tdecimal.Context.quantize(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Context.quantizejp tdecimal.Context.radix(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Context.radixjp tdecimal.Context.remainder(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Context.remainderjp tdecimal.Context.remainder_near(jm jn Mhttps://docs.python.org/3/library/decimal.html#decimal.Context.remainder_nearjp tdecimal.Context.rotate(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Context.rotatejp tdecimal.Context.same_quantum(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Context.same_quantumjp tdecimal.Context.scaleb(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Context.scalebjp tdecimal.Context.shift(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Context.shiftjp tdecimal.Context.sqrt(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.Context.sqrtjp tdecimal.Context.subtract(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Context.subtractjp tdecimal.Context.to_eng_string(jm jn Lhttps://docs.python.org/3/library/decimal.html#decimal.Context.to_eng_stringjp t!decimal.Context.to_integral_exact(jm jn Phttps://docs.python.org/3/library/decimal.html#decimal.Context.to_integral_exactjp tdecimal.Context.to_sci_string(jm jn Lhttps://docs.python.org/3/library/decimal.html#decimal.Context.to_sci_stringjp tdecimal.Decimal.adjusted(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Decimal.adjustedjp t decimal.Decimal.as_integer_ratio(jm jn Ohttps://docs.python.org/3/library/decimal.html#decimal.Decimal.as_integer_ratiojp tdecimal.Decimal.as_tuple(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Decimal.as_tuplejp tdecimal.Decimal.canonical(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.canonicaljp tdecimal.Decimal.compare(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.comparejp tdecimal.Decimal.compare_signal(jm jn Mhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_signaljp tdecimal.Decimal.compare_total(jm jn Lhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_totaljp t!decimal.Decimal.compare_total_mag(jm jn Phttps://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_total_magjp tdecimal.Decimal.conjugate(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.conjugatejp tdecimal.Decimal.copy_abs(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_absjp tdecimal.Decimal.copy_negate(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_negatejp tdecimal.Decimal.copy_sign(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_signjp tdecimal.Decimal.exp(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.expjp tdecimal.Decimal.fma(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.fmajp tdecimal.Decimal.from_float(jm jn Ihttps://docs.python.org/3/library/decimal.html#decimal.Decimal.from_floatjp tdecimal.Decimal.is_canonical(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_canonicaljp tdecimal.Decimal.is_finite(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_finitejp tdecimal.Decimal.is_infinite(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_infinitejp tdecimal.Decimal.is_nan(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_nanjp tdecimal.Decimal.is_normal(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_normaljp tdecimal.Decimal.is_qnan(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_qnanjp tdecimal.Decimal.is_signed(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_signedjp tdecimal.Decimal.is_snan(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_snanjp tdecimal.Decimal.is_subnormal(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_subnormaljp tdecimal.Decimal.is_zero(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_zerojp tdecimal.Decimal.ln(jm jn Ahttps://docs.python.org/3/library/decimal.html#decimal.Decimal.lnjp tdecimal.Decimal.log10(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.log10jp tdecimal.Decimal.logb(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logbjp tdecimal.Decimal.logical_and(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_andjp tdecimal.Decimal.logical_invert(jm jn Mhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_invertjp tdecimal.Decimal.logical_or(jm jn Ihttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_orjp tdecimal.Decimal.logical_xor(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_xorjp tdecimal.Decimal.max(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.maxjp tdecimal.Decimal.max_mag(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.max_magjp tdecimal.Decimal.min(jm jn Bhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.minjp tdecimal.Decimal.min_mag(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.min_magjp tdecimal.Decimal.next_minus(jm jn Ihttps://docs.python.org/3/library/decimal.html#decimal.Decimal.next_minusjp tdecimal.Decimal.next_plus(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.next_plusjp tdecimal.Decimal.next_toward(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.next_towardjp tdecimal.Decimal.normalize(jm jn Hhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.normalizejp tdecimal.Decimal.number_class(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Decimal.number_classjp tdecimal.Decimal.quantize(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.Decimal.quantizejp tdecimal.Decimal.radix(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.radixjp tdecimal.Decimal.remainder_near(jm jn Mhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.remainder_nearjp tdecimal.Decimal.rotate(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Decimal.rotatejp tdecimal.Decimal.same_quantum(jm jn Khttps://docs.python.org/3/library/decimal.html#decimal.Decimal.same_quantumjp tdecimal.Decimal.scaleb(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.Decimal.scalebjp tdecimal.Decimal.shift(jm jn Dhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.shiftjp tdecimal.Decimal.sqrt(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.Decimal.sqrtjp tdecimal.Decimal.to_eng_string(jm jn Lhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_eng_stringjp tdecimal.Decimal.to_integral(jm jn Jhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integraljp t!decimal.Decimal.to_integral_exact(jm jn Phttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_exactjp t!decimal.Decimal.to_integral_value(jm jn Phttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_valuejp t dict.clear(jm jn :https://docs.python.org/3/library/stdtypes.html#dict.clearjp t dict.copy(jm jn 9https://docs.python.org/3/library/stdtypes.html#dict.copyjp t dict.fromkeys(jm jn =https://docs.python.org/3/library/stdtypes.html#dict.fromkeysjp tdict.get(jm jn 8https://docs.python.org/3/library/stdtypes.html#dict.getjp t dict.items(jm jn :https://docs.python.org/3/library/stdtypes.html#dict.itemsjp t dict.keys(jm jn 9https://docs.python.org/3/library/stdtypes.html#dict.keysjp tdict.pop(jm jn 8https://docs.python.org/3/library/stdtypes.html#dict.popjp t dict.popitem(jm jn https://docs.python.org/3/library/enum.html#enum.Enum.__repr__jp tenum.Enum.__str__(jm jn =https://docs.python.org/3/library/enum.html#enum.Enum.__str__jp tenum.Enum._generate_next_value_(jm jn Khttps://docs.python.org/3/library/enum.html#enum.Enum._generate_next_value_jp tenum.Enum._missing_(jm jn ?https://docs.python.org/3/library/enum.html#enum.Enum._missing_jp tenum.EnumType.__call__(jm jn Bhttps://docs.python.org/3/library/enum.html#enum.EnumType.__call__jp tenum.EnumType.__contains__(jm jn Fhttps://docs.python.org/3/library/enum.html#enum.EnumType.__contains__jp tenum.EnumType.__dir__(jm jn Ahttps://docs.python.org/3/library/enum.html#enum.EnumType.__dir__jp tenum.EnumType.__getattr__(jm jn Ehttps://docs.python.org/3/library/enum.html#enum.EnumType.__getattr__jp tenum.EnumType.__getitem__(jm jn Ehttps://docs.python.org/3/library/enum.html#enum.EnumType.__getitem__jp tenum.EnumType.__iter__(jm jn Bhttps://docs.python.org/3/library/enum.html#enum.EnumType.__iter__jp tenum.EnumType.__len__(jm jn Ahttps://docs.python.org/3/library/enum.html#enum.EnumType.__len__jp tenum.EnumType.__reversed__(jm jn Fhttps://docs.python.org/3/library/enum.html#enum.EnumType.__reversed__jp tenum.Flag.__and__(jm jn =https://docs.python.org/3/library/enum.html#enum.Flag.__and__jp tenum.Flag.__contains__(jm jn Bhttps://docs.python.org/3/library/enum.html#enum.Flag.__contains__jp tenum.Flag.__or__(jm jn https://docs.python.org/3/reference/datamodel.html#frame.clearjp t frozenset.add(jm jn =https://docs.python.org/3/library/stdtypes.html#frozenset.addjp tfrozenset.clear(jm jn ?https://docs.python.org/3/library/stdtypes.html#frozenset.clearjp tfrozenset.copy(jm jn >https://docs.python.org/3/library/stdtypes.html#frozenset.copyjp tfrozenset.difference(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#frozenset.differencejp tfrozenset.difference_update(jm jn Khttps://docs.python.org/3/library/stdtypes.html#frozenset.difference_updatejp tfrozenset.discard(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#frozenset.discardjp tfrozenset.intersection(jm jn Fhttps://docs.python.org/3/library/stdtypes.html#frozenset.intersectionjp tfrozenset.intersection_update(jm jn Mhttps://docs.python.org/3/library/stdtypes.html#frozenset.intersection_updatejp tfrozenset.isdisjoint(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#frozenset.isdisjointjp tfrozenset.issubset(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#frozenset.issubsetjp tfrozenset.issuperset(jm jn Dhttps://docs.python.org/3/library/stdtypes.html#frozenset.issupersetjp t frozenset.pop(jm jn =https://docs.python.org/3/library/stdtypes.html#frozenset.popjp tfrozenset.remove(jm jn @https://docs.python.org/3/library/stdtypes.html#frozenset.removejp tfrozenset.symmetric_difference(jm jn Nhttps://docs.python.org/3/library/stdtypes.html#frozenset.symmetric_differencejp t%frozenset.symmetric_difference_update(jm jn Uhttps://docs.python.org/3/library/stdtypes.html#frozenset.symmetric_difference_updatejp tfrozenset.union(jm jn ?https://docs.python.org/3/library/stdtypes.html#frozenset.unionjp tfrozenset.update(jm jn @https://docs.python.org/3/library/stdtypes.html#frozenset.updatejp tftplib.FTP.abort(jm jn >https://docs.python.org/3/library/ftplib.html#ftplib.FTP.abortjp tftplib.FTP.close(jm jn >https://docs.python.org/3/library/ftplib.html#ftplib.FTP.closejp tftplib.FTP.connect(jm jn @https://docs.python.org/3/library/ftplib.html#ftplib.FTP.connectjp tftplib.FTP.cwd(jm jn https://docs.python.org/3/library/ftplib.html#ftplib.FTP.loginjp tftplib.FTP.mkd(jm jn https://docs.python.org/3/library/gzip.html#gzip.GzipFile.peekjp thashlib.hash.copy(jm jn @https://docs.python.org/3/library/hashlib.html#hashlib.hash.copyjp thashlib.hash.digest(jm jn Bhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.digestjp thashlib.hash.hexdigest(jm jn Ehttps://docs.python.org/3/library/hashlib.html#hashlib.hash.hexdigestjp thashlib.hash.update(jm jn Bhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.updatejp thashlib.shake.digest(jm jn Chttps://docs.python.org/3/library/hashlib.html#hashlib.shake.digestjp thashlib.shake.hexdigest(jm jn Fhttps://docs.python.org/3/library/hashlib.html#hashlib.shake.hexdigestjp thmac.HMAC.copy(jm jn :https://docs.python.org/3/library/hmac.html#hmac.HMAC.copyjp thmac.HMAC.digest(jm jn https://docs.python.org/3/library/stdtypes.html#int.bit_lengthjp tint.from_bytes(jm jn >https://docs.python.org/3/library/stdtypes.html#int.from_bytesjp t int.to_bytes(jm jn https://docs.python.org/3/library/io.html#io.BytesIO.getbufferjp tio.BytesIO.getvalue(jm jn =https://docs.python.org/3/library/io.html#io.BytesIO.getvaluejp tio.BytesIO.read1(jm jn :https://docs.python.org/3/library/io.html#io.BytesIO.read1jp tio.BytesIO.readinto1(jm jn >https://docs.python.org/3/library/io.html#io.BytesIO.readinto1jp tio.IOBase.__del__(jm jn ;https://docs.python.org/3/library/io.html#io.IOBase.__del__jp tio.IOBase.close(jm jn 9https://docs.python.org/3/library/io.html#io.IOBase.closejp tio.IOBase.fileno(jm jn :https://docs.python.org/3/library/io.html#io.IOBase.filenojp tio.IOBase.flush(jm jn 9https://docs.python.org/3/library/io.html#io.IOBase.flushjp tio.IOBase.isatty(jm jn :https://docs.python.org/3/library/io.html#io.IOBase.isattyjp tio.IOBase.readable(jm jn https://docs.python.org/3/library/io.html#io.IOBase.writelinesjp tio.RawIOBase.read(jm jn ;https://docs.python.org/3/library/io.html#io.RawIOBase.readjp tio.RawIOBase.readall(jm jn >https://docs.python.org/3/library/io.html#io.RawIOBase.readalljp tio.RawIOBase.readinto(jm jn ?https://docs.python.org/3/library/io.html#io.RawIOBase.readintojp tio.RawIOBase.write(jm jn https://docs.python.org/3/library/io.html#io.StringIO.getvaluejp tio.TextIOBase.detach(jm jn >https://docs.python.org/3/library/io.html#io.TextIOBase.detachjp tio.TextIOBase.read(jm jn https://docs.python.org/3/library/lzma.html#lzma.LZMAFile.peekjp tmailbox.Babyl.get_file(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_filejp tmailbox.Babyl.get_labels(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_labelsjp tmailbox.Babyl.lock(jm jn Ahttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.lockjp tmailbox.Babyl.unlock(jm jn Chttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.unlockjp tmailbox.BabylMessage.add_label(jm jn Mhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.add_labeljp tmailbox.BabylMessage.get_labels(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_labelsjp t mailbox.BabylMessage.get_visible(jm jn Ohttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_visiblejp t!mailbox.BabylMessage.remove_label(jm jn Phttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.remove_labeljp tmailbox.BabylMessage.set_labels(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_labelsjp t mailbox.BabylMessage.set_visible(jm jn Ohttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_visiblejp t#mailbox.BabylMessage.update_visible(jm jn Rhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.update_visiblejp tmailbox.MH.__delitem__(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.MH.__delitem__jp tmailbox.MH.add_folder(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.add_folderjp tmailbox.MH.close(jm jn ?https://docs.python.org/3/library/mailbox.html#mailbox.MH.closejp tmailbox.MH.discard(jm jn Ahttps://docs.python.org/3/library/mailbox.html#mailbox.MH.discardjp tmailbox.MH.flush(jm jn ?https://docs.python.org/3/library/mailbox.html#mailbox.MH.flushjp tmailbox.MH.get_file(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.get_filejp tmailbox.MH.get_folder(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.get_folderjp tmailbox.MH.get_sequences(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.MH.get_sequencesjp tmailbox.MH.list_folders(jm jn Fhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.list_foldersjp tmailbox.MH.lock(jm jn >https://docs.python.org/3/library/mailbox.html#mailbox.MH.lockjp tmailbox.MH.pack(jm jn >https://docs.python.org/3/library/mailbox.html#mailbox.MH.packjp tmailbox.MH.remove(jm jn @https://docs.python.org/3/library/mailbox.html#mailbox.MH.removejp tmailbox.MH.remove_folder(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.MH.remove_folderjp tmailbox.MH.set_sequences(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.MH.set_sequencesjp tmailbox.MH.unlock(jm jn @https://docs.python.org/3/library/mailbox.html#mailbox.MH.unlockjp tmailbox.MHMessage.add_sequence(jm jn Mhttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.add_sequencejp tmailbox.MHMessage.get_sequences(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.get_sequencesjp t!mailbox.MHMessage.remove_sequence(jm jn Phttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.remove_sequencejp tmailbox.MHMessage.set_sequences(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.set_sequencesjp tmailbox.MMDF.get_file(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDF.get_filejp tmailbox.MMDF.lock(jm jn @https://docs.python.org/3/library/mailbox.html#mailbox.MMDF.lockjp tmailbox.MMDF.unlock(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDF.unlockjp tmailbox.MMDFMessage.add_flag(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.add_flagjp tmailbox.MMDFMessage.get_flags(jm jn Lhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_flagsjp tmailbox.MMDFMessage.get_from(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_fromjp tmailbox.MMDFMessage.remove_flag(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.remove_flagjp tmailbox.MMDFMessage.set_flags(jm jn Lhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_flagsjp tmailbox.MMDFMessage.set_from(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_fromjp tmailbox.Mailbox.__contains__(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__contains__jp tmailbox.Mailbox.__delitem__(jm jn Jhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__delitem__jp tmailbox.Mailbox.__getitem__(jm jn Jhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__getitem__jp tmailbox.Mailbox.__iter__(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__iter__jp tmailbox.Mailbox.__len__(jm jn Fhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__len__jp tmailbox.Mailbox.__setitem__(jm jn Jhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__setitem__jp tmailbox.Mailbox.add(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.addjp tmailbox.Mailbox.clear(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.clearjp tmailbox.Mailbox.close(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.closejp tmailbox.Mailbox.discard(jm jn Fhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.discardjp tmailbox.Mailbox.flush(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.flushjp tmailbox.Mailbox.get(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.getjp tmailbox.Mailbox.get_bytes(jm jn Hhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_bytesjp tmailbox.Mailbox.get_file(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_filejp tmailbox.Mailbox.get_message(jm jn Jhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_messagejp tmailbox.Mailbox.get_string(jm jn Ihttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_stringjp tmailbox.Mailbox.items(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.itemsjp tmailbox.Mailbox.iteritems(jm jn Hhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iteritemsjp tmailbox.Mailbox.iterkeys(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iterkeysjp tmailbox.Mailbox.itervalues(jm jn Ihttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.itervaluesjp tmailbox.Mailbox.keys(jm jn Chttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.keysjp tmailbox.Mailbox.lock(jm jn Chttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.lockjp tmailbox.Mailbox.pop(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.popjp tmailbox.Mailbox.popitem(jm jn Fhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.popitemjp tmailbox.Mailbox.remove(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.removejp tmailbox.Mailbox.unlock(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.unlockjp tmailbox.Mailbox.update(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.updatejp tmailbox.Mailbox.values(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.valuesjp tmailbox.Maildir.__setitem__(jm jn Jhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.__setitem__jp tmailbox.Maildir.add(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.addjp tmailbox.Maildir.add_folder(jm jn Ihttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.add_folderjp tmailbox.Maildir.clean(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.cleanjp tmailbox.Maildir.close(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.closejp tmailbox.Maildir.flush(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.flushjp tmailbox.Maildir.get_file(jm jn Ghttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_filejp tmailbox.Maildir.get_folder(jm jn Ihttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_folderjp tmailbox.Maildir.list_folders(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.list_foldersjp tmailbox.Maildir.lock(jm jn Chttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.lockjp tmailbox.Maildir.remove_folder(jm jn Lhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.remove_folderjp tmailbox.Maildir.unlock(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.unlockjp tmailbox.Maildir.update(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.updatejp tmailbox.MaildirMessage.add_flag(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.add_flagjp tmailbox.MaildirMessage.get_date(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_datejp t mailbox.MaildirMessage.get_flags(jm jn Ohttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_flagsjp tmailbox.MaildirMessage.get_info(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_infojp t!mailbox.MaildirMessage.get_subdir(jm jn Phttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_subdirjp t"mailbox.MaildirMessage.remove_flag(jm jn Qhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.remove_flagjp tmailbox.MaildirMessage.set_date(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_datejp t mailbox.MaildirMessage.set_flags(jm jn Ohttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_flagsjp tmailbox.MaildirMessage.set_info(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_infojp t!mailbox.MaildirMessage.set_subdir(jm jn Phttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_subdirjp tmailbox.mbox.get_file(jm jn Dhttps://docs.python.org/3/library/mailbox.html#mailbox.mbox.get_filejp tmailbox.mbox.lock(jm jn @https://docs.python.org/3/library/mailbox.html#mailbox.mbox.lockjp tmailbox.mbox.unlock(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.mbox.unlockjp tmailbox.mboxMessage.add_flag(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.add_flagjp tmailbox.mboxMessage.get_flags(jm jn Lhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_flagsjp tmailbox.mboxMessage.get_from(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_fromjp tmailbox.mboxMessage.remove_flag(jm jn Nhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.remove_flagjp tmailbox.mboxMessage.set_flags(jm jn Lhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_flagsjp tmailbox.mboxMessage.set_from(jm jn Khttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_fromjp tmemoryview.__eq__(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#memoryview.__eq__jp tmemoryview.cast(jm jn ?https://docs.python.org/3/library/stdtypes.html#memoryview.castjp tmemoryview.hex(jm jn >https://docs.python.org/3/library/stdtypes.html#memoryview.hexjp tmemoryview.release(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#memoryview.releasejp tmemoryview.tobytes(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#memoryview.tobytesjp tmemoryview.tolist(jm jn Ahttps://docs.python.org/3/library/stdtypes.html#memoryview.tolistjp tmemoryview.toreadonly(jm jn Ehttps://docs.python.org/3/library/stdtypes.html#memoryview.toreadonlyjp t(mimetypes.MimeTypes.guess_all_extensions(jm jn Yhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_all_extensionsjp t#mimetypes.MimeTypes.guess_extension(jm jn Thttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_extensionjp tmimetypes.MimeTypes.guess_type(jm jn Ohttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_typejp tmimetypes.MimeTypes.read(jm jn Ihttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.readjp t)mimetypes.MimeTypes.read_windows_registry(jm jn Zhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.read_windows_registryjp tmimetypes.MimeTypes.readfp(jm jn Khttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.readfpjp tmmap.mmap.close(jm jn ;https://docs.python.org/3/library/mmap.html#mmap.mmap.closejp tmmap.mmap.find(jm jn :https://docs.python.org/3/library/mmap.html#mmap.mmap.findjp tmmap.mmap.flush(jm jn ;https://docs.python.org/3/library/mmap.html#mmap.mmap.flushjp tmmap.mmap.madvise(jm jn =https://docs.python.org/3/library/mmap.html#mmap.mmap.madvisejp tmmap.mmap.move(jm jn :https://docs.python.org/3/library/mmap.html#mmap.mmap.movejp tmmap.mmap.read(jm jn :https://docs.python.org/3/library/mmap.html#mmap.mmap.readjp tmmap.mmap.read_byte(jm jn ?https://docs.python.org/3/library/mmap.html#mmap.mmap.read_bytejp tmmap.mmap.readline(jm jn >https://docs.python.org/3/library/mmap.html#mmap.mmap.readlinejp tmmap.mmap.resize(jm jn https://docs.python.org/3/library/poplib.html#poplib.POP3.apopjp tpoplib.POP3.capa(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.capajp tpoplib.POP3.dele(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.delejp tpoplib.POP3.getwelcome(jm jn Dhttps://docs.python.org/3/library/poplib.html#poplib.POP3.getwelcomejp tpoplib.POP3.list(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.listjp tpoplib.POP3.noop(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.noopjp tpoplib.POP3.pass_(jm jn ?https://docs.python.org/3/library/poplib.html#poplib.POP3.pass_jp tpoplib.POP3.quit(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.quitjp tpoplib.POP3.retr(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.retrjp tpoplib.POP3.rpop(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.rpopjp tpoplib.POP3.rset(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.rsetjp tpoplib.POP3.set_debuglevel(jm jn Hhttps://docs.python.org/3/library/poplib.html#poplib.POP3.set_debugleveljp tpoplib.POP3.stat(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.statjp tpoplib.POP3.stls(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.stlsjp tpoplib.POP3.top(jm jn =https://docs.python.org/3/library/poplib.html#poplib.POP3.topjp tpoplib.POP3.uidl(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.uidljp tpoplib.POP3.user(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.userjp tpoplib.POP3.utf8(jm jn >https://docs.python.org/3/library/poplib.html#poplib.POP3.utf8jp tpprint.PrettyPrinter.format(jm jn Ihttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.formatjp tpprint.PrettyPrinter.isreadable(jm jn Mhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isreadablejp t pprint.PrettyPrinter.isrecursive(jm jn Nhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isrecursivejp tpprint.PrettyPrinter.pformat(jm jn Jhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pformatjp tpprint.PrettyPrinter.pprint(jm jn Ihttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pprintjp tprofile.Profile.create_stats(jm jn Khttps://docs.python.org/3/library/profile.html#profile.Profile.create_statsjp tprofile.Profile.disable(jm jn Fhttps://docs.python.org/3/library/profile.html#profile.Profile.disablejp tprofile.Profile.dump_stats(jm jn Ihttps://docs.python.org/3/library/profile.html#profile.Profile.dump_statsjp tprofile.Profile.enable(jm jn Ehttps://docs.python.org/3/library/profile.html#profile.Profile.enablejp tprofile.Profile.print_stats(jm jn Jhttps://docs.python.org/3/library/profile.html#profile.Profile.print_statsjp tprofile.Profile.run(jm jn Bhttps://docs.python.org/3/library/profile.html#profile.Profile.runjp tprofile.Profile.runcall(jm jn Fhttps://docs.python.org/3/library/profile.html#profile.Profile.runcalljp tprofile.Profile.runctx(jm jn Ehttps://docs.python.org/3/library/profile.html#profile.Profile.runctxjp tpstats.Stats.add(jm jn ?https://docs.python.org/3/library/profile.html#pstats.Stats.addjp tpstats.Stats.dump_stats(jm jn Fhttps://docs.python.org/3/library/profile.html#pstats.Stats.dump_statsjp tpstats.Stats.get_stats_profile(jm jn Mhttps://docs.python.org/3/library/profile.html#pstats.Stats.get_stats_profilejp tpstats.Stats.print_callees(jm jn Ihttps://docs.python.org/3/library/profile.html#pstats.Stats.print_calleesjp tpstats.Stats.print_callers(jm jn Ihttps://docs.python.org/3/library/profile.html#pstats.Stats.print_callersjp tpstats.Stats.print_stats(jm jn Ghttps://docs.python.org/3/library/profile.html#pstats.Stats.print_statsjp tpstats.Stats.reverse_order(jm jn Ihttps://docs.python.org/3/library/profile.html#pstats.Stats.reverse_orderjp tpstats.Stats.sort_stats(jm jn Fhttps://docs.python.org/3/library/profile.html#pstats.Stats.sort_statsjp tpstats.Stats.strip_dirs(jm jn Fhttps://docs.python.org/3/library/profile.html#pstats.Stats.strip_dirsjp tqueue.Queue.empty(jm jn >https://docs.python.org/3/library/queue.html#queue.Queue.emptyjp tqueue.Queue.full(jm jn =https://docs.python.org/3/library/queue.html#queue.Queue.fulljp tqueue.Queue.get(jm jn https://docs.python.org/3/library/queue.html#queue.Queue.qsizejp tqueue.Queue.task_done(jm jn Bhttps://docs.python.org/3/library/queue.html#queue.Queue.task_donejp tqueue.SimpleQueue.empty(jm jn Dhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.emptyjp tqueue.SimpleQueue.get(jm jn Bhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.getjp tqueue.SimpleQueue.get_nowait(jm jn Ihttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.get_nowaitjp tqueue.SimpleQueue.put(jm jn Bhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.putjp tqueue.SimpleQueue.put_nowait(jm jn Ihttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.put_nowaitjp tqueue.SimpleQueue.qsize(jm jn Dhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.qsizejp tre.Match.__getitem__(jm jn >https://docs.python.org/3/library/re.html#re.Match.__getitem__jp t re.Match.end(jm jn 6https://docs.python.org/3/library/re.html#re.Match.endjp tre.Match.expand(jm jn 9https://docs.python.org/3/library/re.html#re.Match.expandjp tre.Match.group(jm jn 8https://docs.python.org/3/library/re.html#re.Match.groupjp tre.Match.groupdict(jm jn https://docs.python.org/3/library/re.html#re.Pattern.fullmatchjp tre.Pattern.match(jm jn :https://docs.python.org/3/library/re.html#re.Pattern.matchjp tre.Pattern.search(jm jn ;https://docs.python.org/3/library/re.html#re.Pattern.searchjp tre.Pattern.split(jm jn :https://docs.python.org/3/library/re.html#re.Pattern.splitjp tre.Pattern.sub(jm jn 8https://docs.python.org/3/library/re.html#re.Pattern.subjp tre.Pattern.subn(jm jn 9https://docs.python.org/3/library/re.html#re.Pattern.subnjp treprlib.Repr.repr(jm jn @https://docs.python.org/3/library/reprlib.html#reprlib.Repr.reprjp treprlib.Repr.repr1(jm jn Ahttps://docs.python.org/3/library/reprlib.html#reprlib.Repr.repr1jp trlcompleter.Completer.complete(jm jn Qhttps://docs.python.org/3/library/rlcompleter.html#rlcompleter.Completer.completejp tsched.scheduler.cancel(jm jn Chttps://docs.python.org/3/library/sched.html#sched.scheduler.canceljp tsched.scheduler.empty(jm jn Bhttps://docs.python.org/3/library/sched.html#sched.scheduler.emptyjp tsched.scheduler.enter(jm jn Bhttps://docs.python.org/3/library/sched.html#sched.scheduler.enterjp tsched.scheduler.enterabs(jm jn Ehttps://docs.python.org/3/library/sched.html#sched.scheduler.enterabsjp tsched.scheduler.run(jm jn @https://docs.python.org/3/library/sched.html#sched.scheduler.runjp tselect.devpoll.close(jm jn Bhttps://docs.python.org/3/library/select.html#select.devpoll.closejp tselect.devpoll.fileno(jm jn Chttps://docs.python.org/3/library/select.html#select.devpoll.filenojp tselect.devpoll.modify(jm jn Chttps://docs.python.org/3/library/select.html#select.devpoll.modifyjp tselect.devpoll.poll(jm jn Ahttps://docs.python.org/3/library/select.html#select.devpoll.polljp tselect.devpoll.register(jm jn Ehttps://docs.python.org/3/library/select.html#select.devpoll.registerjp tselect.devpoll.unregister(jm jn Ghttps://docs.python.org/3/library/select.html#select.devpoll.unregisterjp tselect.epoll.close(jm jn @https://docs.python.org/3/library/select.html#select.epoll.closejp tselect.epoll.fileno(jm jn Ahttps://docs.python.org/3/library/select.html#select.epoll.filenojp tselect.epoll.fromfd(jm jn Ahttps://docs.python.org/3/library/select.html#select.epoll.fromfdjp tselect.epoll.modify(jm jn Ahttps://docs.python.org/3/library/select.html#select.epoll.modifyjp tselect.epoll.poll(jm jn ?https://docs.python.org/3/library/select.html#select.epoll.polljp tselect.epoll.register(jm jn Chttps://docs.python.org/3/library/select.html#select.epoll.registerjp tselect.epoll.unregister(jm jn Ehttps://docs.python.org/3/library/select.html#select.epoll.unregisterjp tselect.kqueue.close(jm jn Ahttps://docs.python.org/3/library/select.html#select.kqueue.closejp tselect.kqueue.control(jm jn Chttps://docs.python.org/3/library/select.html#select.kqueue.controljp tselect.kqueue.fileno(jm jn Bhttps://docs.python.org/3/library/select.html#select.kqueue.filenojp tselect.kqueue.fromfd(jm jn Bhttps://docs.python.org/3/library/select.html#select.kqueue.fromfdjp tselect.poll.modify(jm jn @https://docs.python.org/3/library/select.html#select.poll.modifyjp tselect.poll.poll(jm jn >https://docs.python.org/3/library/select.html#select.poll.polljp tselect.poll.register(jm jn Bhttps://docs.python.org/3/library/select.html#select.poll.registerjp tselect.poll.unregister(jm jn Dhttps://docs.python.org/3/library/select.html#select.poll.unregisterjp tselectors.BaseSelector.close(jm jn Mhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.closejp tselectors.BaseSelector.get_key(jm jn Ohttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_keyjp tselectors.BaseSelector.get_map(jm jn Ohttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_mapjp tselectors.BaseSelector.modify(jm jn Nhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.modifyjp tselectors.BaseSelector.register(jm jn Phttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.registerjp tselectors.BaseSelector.select(jm jn Nhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.selectjp t!selectors.BaseSelector.unregister(jm jn Rhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.unregisterjp t selectors.DevpollSelector.fileno(jm jn Qhttps://docs.python.org/3/library/selectors.html#selectors.DevpollSelector.filenojp tselectors.EpollSelector.fileno(jm jn Ohttps://docs.python.org/3/library/selectors.html#selectors.EpollSelector.filenojp tselectors.KqueueSelector.fileno(jm jn Phttps://docs.python.org/3/library/selectors.html#selectors.KqueueSelector.filenojp tshelve.Shelf.close(jm jn @https://docs.python.org/3/library/shelve.html#shelve.Shelf.closejp tshelve.Shelf.sync(jm jn ?https://docs.python.org/3/library/shelve.html#shelve.Shelf.syncjp tshlex.shlex.error_leader(jm jn Ehttps://docs.python.org/3/library/shlex.html#shlex.shlex.error_leaderjp tshlex.shlex.get_token(jm jn Bhttps://docs.python.org/3/library/shlex.html#shlex.shlex.get_tokenjp tshlex.shlex.pop_source(jm jn Chttps://docs.python.org/3/library/shlex.html#shlex.shlex.pop_sourcejp tshlex.shlex.push_source(jm jn Dhttps://docs.python.org/3/library/shlex.html#shlex.shlex.push_sourcejp tshlex.shlex.push_token(jm jn Chttps://docs.python.org/3/library/shlex.html#shlex.shlex.push_tokenjp tshlex.shlex.read_token(jm jn Chttps://docs.python.org/3/library/shlex.html#shlex.shlex.read_tokenjp tshlex.shlex.sourcehook(jm jn Chttps://docs.python.org/3/library/shlex.html#shlex.shlex.sourcehookjp t slice.indices(jm jn @https://docs.python.org/3/reference/datamodel.html#slice.indicesjp t smtpd.SMTPServer.process_message(jm jn Mhttps://docs.python.org/3/library/smtpd.html#smtpd.SMTPServer.process_messagejp tsmtplib.SMTP.auth(jm jn @https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.authjp tsmtplib.SMTP.connect(jm jn Chttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.connectjp tsmtplib.SMTP.docmd(jm jn Ahttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.docmdjp tsmtplib.SMTP.ehlo(jm jn @https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehlojp t#smtplib.SMTP.ehlo_or_helo_if_needed(jm jn Rhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehlo_or_helo_if_neededjp tsmtplib.SMTP.has_extn(jm jn Dhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.has_extnjp tsmtplib.SMTP.helo(jm jn @https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.helojp tsmtplib.SMTP.login(jm jn Ahttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.loginjp tsmtplib.SMTP.quit(jm jn @https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.quitjp tsmtplib.SMTP.send_message(jm jn Hhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.send_messagejp tsmtplib.SMTP.sendmail(jm jn Dhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.sendmailjp tsmtplib.SMTP.set_debuglevel(jm jn Jhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.set_debugleveljp tsmtplib.SMTP.starttls(jm jn Dhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.starttlsjp tsmtplib.SMTP.verify(jm jn Bhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.verifyjp tsocket.socket.accept(jm jn Bhttps://docs.python.org/3/library/socket.html#socket.socket.acceptjp tsocket.socket.bind(jm jn @https://docs.python.org/3/library/socket.html#socket.socket.bindjp tsocket.socket.close(jm jn Ahttps://docs.python.org/3/library/socket.html#socket.socket.closejp tsocket.socket.connect(jm jn Chttps://docs.python.org/3/library/socket.html#socket.socket.connectjp tsocket.socket.connect_ex(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.socket.connect_exjp tsocket.socket.detach(jm jn Bhttps://docs.python.org/3/library/socket.html#socket.socket.detachjp tsocket.socket.dup(jm jn ?https://docs.python.org/3/library/socket.html#socket.socket.dupjp tsocket.socket.fileno(jm jn Bhttps://docs.python.org/3/library/socket.html#socket.socket.filenojp tsocket.socket.get_inheritable(jm jn Khttps://docs.python.org/3/library/socket.html#socket.socket.get_inheritablejp tsocket.socket.getblocking(jm jn Ghttps://docs.python.org/3/library/socket.html#socket.socket.getblockingjp tsocket.socket.getpeername(jm jn Ghttps://docs.python.org/3/library/socket.html#socket.socket.getpeernamejp tsocket.socket.getsockname(jm jn Ghttps://docs.python.org/3/library/socket.html#socket.socket.getsocknamejp tsocket.socket.getsockopt(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.socket.getsockoptjp tsocket.socket.gettimeout(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.socket.gettimeoutjp tsocket.socket.ioctl(jm jn Ahttps://docs.python.org/3/library/socket.html#socket.socket.ioctljp tsocket.socket.listen(jm jn Bhttps://docs.python.org/3/library/socket.html#socket.socket.listenjp tsocket.socket.makefile(jm jn Dhttps://docs.python.org/3/library/socket.html#socket.socket.makefilejp tsocket.socket.recv(jm jn @https://docs.python.org/3/library/socket.html#socket.socket.recvjp tsocket.socket.recv_into(jm jn Ehttps://docs.python.org/3/library/socket.html#socket.socket.recv_intojp tsocket.socket.recvfrom(jm jn Dhttps://docs.python.org/3/library/socket.html#socket.socket.recvfromjp tsocket.socket.recvfrom_into(jm jn Ihttps://docs.python.org/3/library/socket.html#socket.socket.recvfrom_intojp tsocket.socket.recvmsg(jm jn Chttps://docs.python.org/3/library/socket.html#socket.socket.recvmsgjp tsocket.socket.recvmsg_into(jm jn Hhttps://docs.python.org/3/library/socket.html#socket.socket.recvmsg_intojp tsocket.socket.send(jm jn @https://docs.python.org/3/library/socket.html#socket.socket.sendjp tsocket.socket.sendall(jm jn Chttps://docs.python.org/3/library/socket.html#socket.socket.sendalljp tsocket.socket.sendfile(jm jn Dhttps://docs.python.org/3/library/socket.html#socket.socket.sendfilejp tsocket.socket.sendmsg(jm jn Chttps://docs.python.org/3/library/socket.html#socket.socket.sendmsgjp tsocket.socket.sendmsg_afalg(jm jn Ihttps://docs.python.org/3/library/socket.html#socket.socket.sendmsg_afalgjp tsocket.socket.sendto(jm jn Bhttps://docs.python.org/3/library/socket.html#socket.socket.sendtojp tsocket.socket.set_inheritable(jm jn Khttps://docs.python.org/3/library/socket.html#socket.socket.set_inheritablejp tsocket.socket.setblocking(jm jn Ghttps://docs.python.org/3/library/socket.html#socket.socket.setblockingjp tsocket.socket.setsockopt(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.socket.setsockoptjp tsocket.socket.settimeout(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.socket.settimeoutjp tsocket.socket.share(jm jn Ahttps://docs.python.org/3/library/socket.html#socket.socket.sharejp tsocket.socket.shutdown(jm jn Dhttps://docs.python.org/3/library/socket.html#socket.socket.shutdownjp t&socketserver.BaseRequestHandler.finish(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseRequestHandler.finishjp t&socketserver.BaseRequestHandler.handle(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseRequestHandler.handlejp t%socketserver.BaseRequestHandler.setup(jm jn Yhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseRequestHandler.setupjp tsocketserver.BaseServer.fileno(jm jn Rhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.filenojp t&socketserver.BaseServer.finish_request(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.finish_requestjp t#socketserver.BaseServer.get_request(jm jn Whttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.get_requestjp t$socketserver.BaseServer.handle_error(jm jn Xhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_errorjp t&socketserver.BaseServer.handle_request(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_requestjp t&socketserver.BaseServer.handle_timeout(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_timeoutjp t'socketserver.BaseServer.process_request(jm jn [https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.process_requestjp t%socketserver.BaseServer.serve_forever(jm jn Yhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.serve_foreverjp t'socketserver.BaseServer.server_activate(jm jn [https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_activatejp t#socketserver.BaseServer.server_bind(jm jn Whttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_bindjp t$socketserver.BaseServer.server_close(jm jn Xhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_closejp t'socketserver.BaseServer.service_actions(jm jn [https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.service_actionsjp t socketserver.BaseServer.shutdown(jm jn Thttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.shutdownjp t&socketserver.BaseServer.verify_request(jm jn Zhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.verify_requestjp tsqlite3.Blob.close(jm jn Ahttps://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.closejp tsqlite3.Blob.read(jm jn @https://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.readjp tsqlite3.Blob.seek(jm jn @https://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.seekjp tsqlite3.Blob.tell(jm jn @https://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.telljp tsqlite3.Blob.write(jm jn Ahttps://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.writejp tsqlite3.Connection.backup(jm jn Hhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.backupjp tsqlite3.Connection.blobopen(jm jn Jhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.blobopenjp tsqlite3.Connection.close(jm jn Ghttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.closejp tsqlite3.Connection.commit(jm jn Hhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.commitjp t#sqlite3.Connection.create_aggregate(jm jn Rhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_aggregatejp t#sqlite3.Connection.create_collation(jm jn Rhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_collationjp t"sqlite3.Connection.create_function(jm jn Qhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_functionjp t)sqlite3.Connection.create_window_function(jm jn Xhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_window_functionjp tsqlite3.Connection.cursor(jm jn Hhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.cursorjp tsqlite3.Connection.deserialize(jm jn Mhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.deserializejp t(sqlite3.Connection.enable_load_extension(jm jn Whttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.enable_load_extensionjp tsqlite3.Connection.execute(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executejp tsqlite3.Connection.executemany(jm jn Mhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executemanyjp t sqlite3.Connection.executescript(jm jn Ohttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executescriptjp tsqlite3.Connection.getlimit(jm jn Jhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.getlimitjp tsqlite3.Connection.interrupt(jm jn Khttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.interruptjp tsqlite3.Connection.iterdump(jm jn Jhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.iterdumpjp t!sqlite3.Connection.load_extension(jm jn Phttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.load_extensionjp tsqlite3.Connection.rollback(jm jn Jhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.rollbackjp tsqlite3.Connection.serialize(jm jn Khttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.serializejp t!sqlite3.Connection.set_authorizer(jm jn Phttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_authorizerjp t'sqlite3.Connection.set_progress_handler(jm jn Vhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_progress_handlerjp t%sqlite3.Connection.set_trace_callback(jm jn Thttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_trace_callbackjp tsqlite3.Connection.setlimit(jm jn Jhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.setlimitjp tsqlite3.Cursor.close(jm jn Chttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.closejp tsqlite3.Cursor.execute(jm jn Ehttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executejp tsqlite3.Cursor.executemany(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executemanyjp tsqlite3.Cursor.executescript(jm jn Khttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executescriptjp tsqlite3.Cursor.fetchall(jm jn Fhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchalljp tsqlite3.Cursor.fetchmany(jm jn Ghttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchmanyjp tsqlite3.Cursor.fetchone(jm jn Fhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchonejp tsqlite3.Cursor.setinputsizes(jm jn Khttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.setinputsizesjp tsqlite3.Cursor.setoutputsize(jm jn Khttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.setoutputsizejp tsqlite3.Row.keys(jm jn ?https://docs.python.org/3/library/sqlite3.html#sqlite3.Row.keysjp tssl.MemoryBIO.read(jm jn =https://docs.python.org/3/library/ssl.html#ssl.MemoryBIO.readjp tssl.MemoryBIO.write(jm jn >https://docs.python.org/3/library/ssl.html#ssl.MemoryBIO.writejp tssl.MemoryBIO.write_eof(jm jn Bhttps://docs.python.org/3/library/ssl.html#ssl.MemoryBIO.write_eofjp tssl.SSLContext.cert_store_stats(jm jn Jhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.cert_store_statsjp tssl.SSLContext.get_ca_certs(jm jn Fhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.get_ca_certsjp tssl.SSLContext.get_ciphers(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.get_ciphersjp tssl.SSLContext.load_cert_chain(jm jn Ihttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_cert_chainjp t!ssl.SSLContext.load_default_certs(jm jn Lhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_default_certsjp tssl.SSLContext.load_dh_params(jm jn Hhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_dh_paramsjp t$ssl.SSLContext.load_verify_locations(jm jn Ohttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locationsjp tssl.SSLContext.session_stats(jm jn Ghttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.session_statsjp t!ssl.SSLContext.set_alpn_protocols(jm jn Lhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_alpn_protocolsjp tssl.SSLContext.set_ciphers(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ciphersjp t'ssl.SSLContext.set_default_verify_paths(jm jn Rhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_default_verify_pathsjp tssl.SSLContext.set_ecdh_curve(jm jn Hhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ecdh_curvejp t ssl.SSLContext.set_npn_protocols(jm jn Khttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_npn_protocolsjp tssl.SSLContext.wrap_bio(jm jn Bhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_biojp tssl.SSLContext.wrap_socket(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_socketjp tssl.SSLSocket.cipher(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.cipherjp tssl.SSLSocket.compression(jm jn Dhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.compressionjp tssl.SSLSocket.do_handshake(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.do_handshakejp t!ssl.SSLSocket.get_channel_binding(jm jn Lhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.get_channel_bindingjp tssl.SSLSocket.getpeercert(jm jn Dhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.getpeercertjp tssl.SSLSocket.pending(jm jn @https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.pendingjp tssl.SSLSocket.read(jm jn =https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.readjp t$ssl.SSLSocket.selected_alpn_protocol(jm jn Ohttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.selected_alpn_protocoljp t#ssl.SSLSocket.selected_npn_protocol(jm jn Nhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.selected_npn_protocoljp tssl.SSLSocket.shared_ciphers(jm jn Ghttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.shared_ciphersjp tssl.SSLSocket.unwrap(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.unwrapjp t*ssl.SSLSocket.verify_client_post_handshake(jm jn Uhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.verify_client_post_handshakejp tssl.SSLSocket.version(jm jn @https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.versionjp tssl.SSLSocket.write(jm jn >https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.writejp tstatistics.NormalDist.cdf(jm jn Khttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.cdfjp t"statistics.NormalDist.from_samples(jm jn Thttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.from_samplesjp tstatistics.NormalDist.inv_cdf(jm jn Ohttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.inv_cdfjp tstatistics.NormalDist.overlap(jm jn Ohttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.overlapjp tstatistics.NormalDist.pdf(jm jn Khttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.pdfjp tstatistics.NormalDist.quantiles(jm jn Qhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.quantilesjp tstatistics.NormalDist.samples(jm jn Ohttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.samplesjp tstatistics.NormalDist.zscore(jm jn Nhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.zscorejp tstr.capitalize(jm jn >https://docs.python.org/3/library/stdtypes.html#str.capitalizejp t str.casefold(jm jn https://docs.python.org/3/library/stdtypes.html#str.expandtabsjp tstr.find(jm jn 8https://docs.python.org/3/library/stdtypes.html#str.findjp t str.format(jm jn :https://docs.python.org/3/library/stdtypes.html#str.formatjp tstr.format_map(jm jn >https://docs.python.org/3/library/stdtypes.html#str.format_mapjp t str.index(jm jn 9https://docs.python.org/3/library/stdtypes.html#str.indexjp t str.isalnum(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.isalnumjp t str.isalpha(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.isalphajp t str.isascii(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.isasciijp t str.isdecimal(jm jn =https://docs.python.org/3/library/stdtypes.html#str.isdecimaljp t str.isdigit(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.isdigitjp tstr.isidentifier(jm jn @https://docs.python.org/3/library/stdtypes.html#str.isidentifierjp t str.islower(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.islowerjp t str.isnumeric(jm jn =https://docs.python.org/3/library/stdtypes.html#str.isnumericjp tstr.isprintable(jm jn ?https://docs.python.org/3/library/stdtypes.html#str.isprintablejp t str.isspace(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.isspacejp t str.istitle(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.istitlejp t str.isupper(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.isupperjp tstr.join(jm jn 8https://docs.python.org/3/library/stdtypes.html#str.joinjp t str.ljust(jm jn 9https://docs.python.org/3/library/stdtypes.html#str.ljustjp t str.lower(jm jn 9https://docs.python.org/3/library/stdtypes.html#str.lowerjp t str.lstrip(jm jn :https://docs.python.org/3/library/stdtypes.html#str.lstripjp t str.maketrans(jm jn =https://docs.python.org/3/library/stdtypes.html#str.maketransjp t str.partition(jm jn =https://docs.python.org/3/library/stdtypes.html#str.partitionjp tstr.removeprefix(jm jn @https://docs.python.org/3/library/stdtypes.html#str.removeprefixjp tstr.removesuffix(jm jn @https://docs.python.org/3/library/stdtypes.html#str.removesuffixjp t str.replace(jm jn ;https://docs.python.org/3/library/stdtypes.html#str.replacejp t str.rfind(jm jn 9https://docs.python.org/3/library/stdtypes.html#str.rfindjp t str.rindex(jm jn :https://docs.python.org/3/library/stdtypes.html#str.rindexjp t str.rjust(jm jn 9https://docs.python.org/3/library/stdtypes.html#str.rjustjp tstr.rpartition(jm jn >https://docs.python.org/3/library/stdtypes.html#str.rpartitionjp t str.rsplit(jm jn :https://docs.python.org/3/library/stdtypes.html#str.rsplitjp t str.rstrip(jm jn :https://docs.python.org/3/library/stdtypes.html#str.rstripjp t str.split(jm jn 9https://docs.python.org/3/library/stdtypes.html#str.splitjp tstr.splitlines(jm jn >https://docs.python.org/3/library/stdtypes.html#str.splitlinesjp tstr.startswith(jm jn >https://docs.python.org/3/library/stdtypes.html#str.startswithjp t str.strip(jm jn 9https://docs.python.org/3/library/stdtypes.html#str.stripjp t str.swapcase(jm jn test.support.bytecode_helper.BytecodeTestCase.assertInBytecode(jm jn jhttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCase.assertInBytecodejp tAtest.support.bytecode_helper.BytecodeTestCase.assertNotInBytecode(jm jn mhttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCase.assertNotInBytecodejp tGtest.support.bytecode_helper.BytecodeTestCase.get_disassembly_as_string(jm jn shttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCase.get_disassembly_as_stringjp t.test.support.os_helper.EnvironmentVarGuard.set(jm jn Zhttps://docs.python.org/3/library/test.html#test.support.os_helper.EnvironmentVarGuard.setjp t0test.support.os_helper.EnvironmentVarGuard.unset(jm jn \https://docs.python.org/3/library/test.html#test.support.os_helper.EnvironmentVarGuard.unsetjp ttextwrap.TextWrapper.fill(jm jn Ihttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.filljp ttextwrap.TextWrapper.wrap(jm jn Ihttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.wrapjp tthreading.Barrier.abort(jm jn Hhttps://docs.python.org/3/library/threading.html#threading.Barrier.abortjp tthreading.Barrier.reset(jm jn Hhttps://docs.python.org/3/library/threading.html#threading.Barrier.resetjp tthreading.Barrier.wait(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.Barrier.waitjp tthreading.Condition.acquire(jm jn Lhttps://docs.python.org/3/library/threading.html#threading.Condition.acquirejp tthreading.Condition.notify(jm jn Khttps://docs.python.org/3/library/threading.html#threading.Condition.notifyjp tthreading.Condition.notify_all(jm jn Ohttps://docs.python.org/3/library/threading.html#threading.Condition.notify_alljp tthreading.Condition.release(jm jn Lhttps://docs.python.org/3/library/threading.html#threading.Condition.releasejp tthreading.Condition.wait(jm jn Ihttps://docs.python.org/3/library/threading.html#threading.Condition.waitjp tthreading.Condition.wait_for(jm jn Mhttps://docs.python.org/3/library/threading.html#threading.Condition.wait_forjp tthreading.Event.clear(jm jn Fhttps://docs.python.org/3/library/threading.html#threading.Event.clearjp tthreading.Event.is_set(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.Event.is_setjp tthreading.Event.set(jm jn Dhttps://docs.python.org/3/library/threading.html#threading.Event.setjp tthreading.Event.wait(jm jn Ehttps://docs.python.org/3/library/threading.html#threading.Event.waitjp tthreading.Lock.acquire(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.Lock.acquirejp tthreading.Lock.locked(jm jn Fhttps://docs.python.org/3/library/threading.html#threading.Lock.lockedjp tthreading.Lock.release(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.Lock.releasejp tthreading.RLock.acquire(jm jn Hhttps://docs.python.org/3/library/threading.html#threading.RLock.acquirejp tthreading.RLock.release(jm jn Hhttps://docs.python.org/3/library/threading.html#threading.RLock.releasejp tthreading.Semaphore.acquire(jm jn Lhttps://docs.python.org/3/library/threading.html#threading.Semaphore.acquirejp tthreading.Semaphore.release(jm jn Lhttps://docs.python.org/3/library/threading.html#threading.Semaphore.releasejp tthreading.Thread.getName(jm jn Ihttps://docs.python.org/3/library/threading.html#threading.Thread.getNamejp tthreading.Thread.isDaemon(jm jn Jhttps://docs.python.org/3/library/threading.html#threading.Thread.isDaemonjp tthreading.Thread.is_alive(jm jn Jhttps://docs.python.org/3/library/threading.html#threading.Thread.is_alivejp tthreading.Thread.join(jm jn Fhttps://docs.python.org/3/library/threading.html#threading.Thread.joinjp tthreading.Thread.run(jm jn Ehttps://docs.python.org/3/library/threading.html#threading.Thread.runjp tthreading.Thread.setDaemon(jm jn Khttps://docs.python.org/3/library/threading.html#threading.Thread.setDaemonjp tthreading.Thread.setName(jm jn Ihttps://docs.python.org/3/library/threading.html#threading.Thread.setNamejp tthreading.Thread.start(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.Thread.startjp tthreading.Timer.cancel(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.Timer.canceljp ttimeit.Timer.autorange(jm jn Dhttps://docs.python.org/3/library/timeit.html#timeit.Timer.autorangejp ttimeit.Timer.print_exc(jm jn Dhttps://docs.python.org/3/library/timeit.html#timeit.Timer.print_excjp ttimeit.Timer.repeat(jm jn Ahttps://docs.python.org/3/library/timeit.html#timeit.Timer.repeatjp ttimeit.Timer.timeit(jm jn Ahttps://docs.python.org/3/library/timeit.html#timeit.Timer.timeitjp t#tkinter.Widget.tk.createfilehandler(jm jn Rhttps://docs.python.org/3/library/tkinter.html#tkinter.Widget.tk.createfilehandlerjp t#tkinter.Widget.tk.deletefilehandler(jm jn Rhttps://docs.python.org/3/library/tkinter.html#tkinter.Widget.tk.deletefilehandlerjp t tkinter.commondialog.Dialog.show(jm jn Nhttps://docs.python.org/3/library/dialog.html#tkinter.commondialog.Dialog.showjp ttkinter.dnd.DndHandler.cancel(jm jn Phttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.canceljp ttkinter.dnd.DndHandler.finish(jm jn Phttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.finishjp t tkinter.dnd.DndHandler.on_motion(jm jn Shttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.on_motionjp t!tkinter.dnd.DndHandler.on_release(jm jn Thttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.on_releasejp t,tkinter.filedialog.FileDialog.cancel_command(jm jn Zhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.cancel_commandjp t/tkinter.filedialog.FileDialog.dirs_double_event(jm jn ]https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.dirs_double_eventjp t/tkinter.filedialog.FileDialog.dirs_select_event(jm jn ]https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.dirs_select_eventjp t0tkinter.filedialog.FileDialog.files_double_event(jm jn ^https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.files_double_eventjp t0tkinter.filedialog.FileDialog.files_select_event(jm jn ^https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.files_select_eventjp t,tkinter.filedialog.FileDialog.filter_command(jm jn Zhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.filter_commandjp t(tkinter.filedialog.FileDialog.get_filter(jm jn Vhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.get_filterjp t+tkinter.filedialog.FileDialog.get_selection(jm jn Yhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.get_selectionjp t tkinter.filedialog.FileDialog.go(jm jn Nhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.gojp t&tkinter.filedialog.FileDialog.ok_event(jm jn Thttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.ok_eventjp t"tkinter.filedialog.FileDialog.quit(jm jn Phttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.quitjp t(tkinter.filedialog.FileDialog.set_filter(jm jn Vhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.set_filterjp t+tkinter.filedialog.FileDialog.set_selection(jm jn Yhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.set_selectionjp t,tkinter.filedialog.LoadFileDialog.ok_command(jm jn Zhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.LoadFileDialog.ok_commandjp t,tkinter.filedialog.SaveFileDialog.ok_command(jm jn Zhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.SaveFileDialog.ok_commandjp ttkinter.font.Font.actual(jm jn Lhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.actualjp ttkinter.font.Font.cget(jm jn Jhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.cgetjp ttkinter.font.Font.config(jm jn Lhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.configjp ttkinter.font.Font.copy(jm jn Jhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.copyjp ttkinter.font.Font.measure(jm jn Mhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.measurejp ttkinter.font.Font.metrics(jm jn Mhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.metricsjp ttkinter.messagebox.askokcancel(jm jn Xhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.askokcanceljp ttkinter.messagebox.askquestion(jm jn Xhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.askquestionjp t!tkinter.messagebox.askretrycancel(jm jn [https://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.askretrycanceljp ttkinter.messagebox.askyesno(jm jn Uhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.askyesnojp t!tkinter.messagebox.askyesnocancel(jm jn [https://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.askyesnocanceljp ttkinter.messagebox.showerror(jm jn Vhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.showerrorjp ttkinter.messagebox.showinfo(jm jn Uhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.showinfojp ttkinter.messagebox.showwarning(jm jn Xhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.showwarningjp t tkinter.simpledialog.Dialog.body(jm jn Nhttps://docs.python.org/3/library/dialog.html#tkinter.simpledialog.Dialog.bodyjp t%tkinter.simpledialog.Dialog.buttonbox(jm jn Shttps://docs.python.org/3/library/dialog.html#tkinter.simpledialog.Dialog.buttonboxjp t'tkinter.tix.tixCommand.tix_addbitmapdir(jm jn Zhttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_addbitmapdirjp ttkinter.tix.tixCommand.tix_cget(jm jn Rhttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_cgetjp t$tkinter.tix.tixCommand.tix_configure(jm jn Whttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_configurejp t%tkinter.tix.tixCommand.tix_filedialog(jm jn Xhttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_filedialogjp t$tkinter.tix.tixCommand.tix_getbitmap(jm jn Whttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getbitmapjp t#tkinter.tix.tixCommand.tix_getimage(jm jn Vhttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getimagejp t%tkinter.tix.tixCommand.tix_option_get(jm jn Xhttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_option_getjp t'tkinter.tix.tixCommand.tix_resetoptions(jm jn Zhttps://docs.python.org/3/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_resetoptionsjp ttkinter.ttk.Combobox.current(jm jn Ohttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.currentjp ttkinter.ttk.Combobox.get(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.getjp ttkinter.ttk.Combobox.set(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.setjp ttkinter.ttk.Notebook.add(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.addjp t%tkinter.ttk.Notebook.enable_traversal(jm jn Xhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.enable_traversaljp ttkinter.ttk.Notebook.forget(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.forgetjp ttkinter.ttk.Notebook.hide(jm jn Lhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.hidejp ttkinter.ttk.Notebook.identify(jm jn Phttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.identifyjp ttkinter.ttk.Notebook.index(jm jn Mhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.indexjp ttkinter.ttk.Notebook.insert(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.insertjp ttkinter.ttk.Notebook.select(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.selectjp ttkinter.ttk.Notebook.tab(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tabjp ttkinter.ttk.Notebook.tabs(jm jn Lhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tabsjp ttkinter.ttk.Progressbar.start(jm jn Phttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.startjp ttkinter.ttk.Progressbar.step(jm jn Ohttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.stepjp ttkinter.ttk.Progressbar.stop(jm jn Ohttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.stopjp ttkinter.ttk.Spinbox.get(jm jn Jhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Spinbox.getjp ttkinter.ttk.Spinbox.set(jm jn Jhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Spinbox.setjp ttkinter.ttk.Style.configure(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.configurejp t tkinter.ttk.Style.element_create(jm jn Shttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_createjp ttkinter.ttk.Style.element_names(jm jn Rhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_namesjp t!tkinter.ttk.Style.element_options(jm jn Thttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_optionsjp ttkinter.ttk.Style.layout(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.layoutjp ttkinter.ttk.Style.lookup(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.lookupjp ttkinter.ttk.Style.map(jm jn Hhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.mapjp ttkinter.ttk.Style.theme_create(jm jn Qhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_createjp ttkinter.ttk.Style.theme_names(jm jn Phttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_namesjp t tkinter.ttk.Style.theme_settings(jm jn Shttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_settingsjp ttkinter.ttk.Style.theme_use(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_usejp ttkinter.ttk.Treeview.bbox(jm jn Lhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.bboxjp ttkinter.ttk.Treeview.column(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.columnjp ttkinter.ttk.Treeview.delete(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.deletejp ttkinter.ttk.Treeview.detach(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.detachjp ttkinter.ttk.Treeview.exists(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.existsjp ttkinter.ttk.Treeview.focus(jm jn Mhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.focusjp t!tkinter.ttk.Treeview.get_children(jm jn Thttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.get_childrenjp ttkinter.ttk.Treeview.heading(jm jn Ohttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.headingjp ttkinter.ttk.Treeview.identify(jm jn Phttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identifyjp t$tkinter.ttk.Treeview.identify_column(jm jn Whttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_columnjp t%tkinter.ttk.Treeview.identify_element(jm jn Xhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_elementjp t$tkinter.ttk.Treeview.identify_region(jm jn Whttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_regionjp t!tkinter.ttk.Treeview.identify_row(jm jn Thttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_rowjp ttkinter.ttk.Treeview.index(jm jn Mhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.indexjp ttkinter.ttk.Treeview.insert(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.insertjp ttkinter.ttk.Treeview.item(jm jn Lhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.itemjp ttkinter.ttk.Treeview.move(jm jn Lhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.movejp ttkinter.ttk.Treeview.next(jm jn Lhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.nextjp ttkinter.ttk.Treeview.parent(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.parentjp ttkinter.ttk.Treeview.prev(jm jn Lhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.prevjp ttkinter.ttk.Treeview.reattach(jm jn Phttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.reattachjp ttkinter.ttk.Treeview.see(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.seejp ttkinter.ttk.Treeview.selection(jm jn Qhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selectionjp t"tkinter.ttk.Treeview.selection_add(jm jn Uhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_addjp t%tkinter.ttk.Treeview.selection_remove(jm jn Xhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_removejp t"tkinter.ttk.Treeview.selection_set(jm jn Uhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_setjp t%tkinter.ttk.Treeview.selection_toggle(jm jn Xhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_togglejp ttkinter.ttk.Treeview.set(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.setjp t!tkinter.ttk.Treeview.set_children(jm jn Thttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.set_childrenjp ttkinter.ttk.Treeview.tag_bind(jm jn Phttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_bindjp t"tkinter.ttk.Treeview.tag_configure(jm jn Uhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_configurejp ttkinter.ttk.Treeview.tag_has(jm jn Ohttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_hasjp ttkinter.ttk.Treeview.xview(jm jn Mhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.xviewjp ttkinter.ttk.Treeview.yview(jm jn Mhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.yviewjp ttkinter.ttk.Widget.identify(jm jn Nhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.identifyjp ttkinter.ttk.Widget.instate(jm jn Mhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.instatejp ttkinter.ttk.Widget.state(jm jn Khttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.statejp ttrace.CoverageResults.update(jm jn Ihttps://docs.python.org/3/library/trace.html#trace.CoverageResults.updatejp t#trace.CoverageResults.write_results(jm jn Phttps://docs.python.org/3/library/trace.html#trace.CoverageResults.write_resultsjp ttrace.Trace.results(jm jn @https://docs.python.org/3/library/trace.html#trace.Trace.resultsjp ttrace.Trace.run(jm jn urllib.request.AbstractDigestAuthHandler.http_error_auth_reqed(jm jn thttps://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandler.http_error_auth_reqedjp t%urllib.request.BaseHandler.add_parent(jm jn [https://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.add_parentjp t urllib.request.BaseHandler.close(jm jn Vhttps://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.closejp t'urllib.request.BaseHandler.default_open(jm jn ]https://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.default_openjp t-urllib.request.BaseHandler.http_error_default(jm jn chttps://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.http_error_defaultjp t'urllib.request.BaseHandler.unknown_open(jm jn ]https://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.unknown_openjp t*urllib.request.CacheFTPHandler.setMaxConns(jm jn `https://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setMaxConnsjp t)urllib.request.CacheFTPHandler.setTimeout(jm jn _https://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setTimeoutjp t$urllib.request.DataHandler.data_open(jm jn Zhttps://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandler.data_openjp t"urllib.request.FTPHandler.ftp_open(jm jn Xhttps://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandler.ftp_openjp t0urllib.request.FancyURLopener.prompt_user_passwd(jm jn fhttps://docs.python.org/3/library/urllib.request.html#urllib.request.FancyURLopener.prompt_user_passwdjp t$urllib.request.FileHandler.file_open(jm jn Zhttps://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandler.file_openjp t2urllib.request.HTTPBasicAuthHandler.http_error_401(jm jn hhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandler.http_error_401jp t3urllib.request.HTTPDigestAuthHandler.http_error_401(jm jn ihttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandler.http_error_401jp t/urllib.request.HTTPErrorProcessor.http_response(jm jn ehttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.http_responsejp t0urllib.request.HTTPErrorProcessor.https_response(jm jn fhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.https_responsejp t$urllib.request.HTTPHandler.http_open(jm jn Zhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandler.http_openjp t+urllib.request.HTTPPasswordMgr.add_password(jm jn ahttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.add_passwordjp t1urllib.request.HTTPPasswordMgr.find_user_password(jm jn ghttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.find_user_passwordjp t8urllib.request.HTTPPasswordMgrWithPriorAuth.add_password(jm jn nhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithPriorAuth.add_passwordjp t>urllib.request.HTTPPasswordMgrWithPriorAuth.find_user_password(jm jn thttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithPriorAuth.find_user_passwordjp thttps://docs.python.org/3/library/zlib.html#zlib.Compress.copyjp tzlib.Compress.flush(jm jn ?https://docs.python.org/3/library/zlib.html#zlib.Compress.flushjp tzlib.Decompress.copy(jm jn @https://docs.python.org/3/library/zlib.html#zlib.Decompress.copyjp tzlib.Decompress.decompress(jm jn Fhttps://docs.python.org/3/library/zlib.html#zlib.Decompress.decompressjp tzlib.Decompress.flush(jm jn Ahttps://docs.python.org/3/library/zlib.html#zlib.Decompress.flushjp tzoneinfo.ZoneInfo.clear_cache(jm jn Mhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo.clear_cachejp tzoneinfo.ZoneInfo.from_file(jm jn Khttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo.from_filejp tzoneinfo.ZoneInfo.no_cache(jm jn Jhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo.no_cachejp tupy:data}(Ellipsis(jm jn 9https://docs.python.org/3/library/constants.html#Ellipsisjp tFalse(jm jn 6https://docs.python.org/3/library/constants.html#Falsejp tNone(jm jn 5https://docs.python.org/3/library/constants.html#None jp tNotImplemented(jm jn ?https://docs.python.org/3/library/constants.html#NotImplementedjp tTrue(jm jn 5https://docs.python.org/3/library/constants.html#Truejp t __debug__(jm jn 8https://docs.python.org/3/library/constants.html#debug__jp t_thread.LockType(jm jn >https://docs.python.org/3/library/_thread.html#thread.LockTypejp t_thread.TIMEOUT_MAX(jm jn Ahttps://docs.python.org/3/library/_thread.html#thread.TIMEOUT_MAXjp tarray.typecodes(jm jn https://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16jp tcodecs.BOM_UTF16_BE(jm jn Ahttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_BEjp tcodecs.BOM_UTF16_LE(jm jn Ahttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_LEjp tcodecs.BOM_UTF32(jm jn >https://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32jp tcodecs.BOM_UTF32_BE(jm jn Ahttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_BEjp tcodecs.BOM_UTF32_LE(jm jn Ahttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_LEjp tcodecs.BOM_UTF8(jm jn =https://docs.python.org/3/library/codecs.html#codecs.BOM_UTF8jp t$configparser.MAX_INTERPOLATION_DEPTH(jm jn Xhttps://docs.python.org/3/library/configparser.html#configparser.MAX_INTERPOLATION_DEPTHjp t copyright(jm jn :https://docs.python.org/3/library/constants.html#copyrightjp tcredits(jm jn 8https://docs.python.org/3/library/constants.html#creditsjp tcrypt.METHOD_BLOWFISH(jm jn Bhttps://docs.python.org/3/library/crypt.html#crypt.METHOD_BLOWFISHjp tcrypt.METHOD_CRYPT(jm jn ?https://docs.python.org/3/library/crypt.html#crypt.METHOD_CRYPTjp tcrypt.METHOD_MD5(jm jn =https://docs.python.org/3/library/crypt.html#crypt.METHOD_MD5jp tcrypt.METHOD_SHA256(jm jn @https://docs.python.org/3/library/crypt.html#crypt.METHOD_SHA256jp tcrypt.METHOD_SHA512(jm jn @https://docs.python.org/3/library/crypt.html#crypt.METHOD_SHA512jp t csv.QUOTE_ALL(jm jn 8https://docs.python.org/3/library/csv.html#csv.QUOTE_ALLjp tcsv.QUOTE_MINIMAL(jm jn https://docs.python.org/3/library/curses.html#curses.ACS_BLOCKjp tcurses.ACS_BOARD(jm jn >https://docs.python.org/3/library/curses.html#curses.ACS_BOARDjp tcurses.ACS_BSBS(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_BSBSjp tcurses.ACS_BSSB(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_BSSBjp tcurses.ACS_BSSS(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_BSSSjp tcurses.ACS_BTEE(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_BTEEjp tcurses.ACS_BULLET(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_BULLETjp tcurses.ACS_CKBOARD(jm jn @https://docs.python.org/3/library/curses.html#curses.ACS_CKBOARDjp tcurses.ACS_DARROW(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_DARROWjp tcurses.ACS_DEGREE(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_DEGREEjp tcurses.ACS_DIAMOND(jm jn @https://docs.python.org/3/library/curses.html#curses.ACS_DIAMONDjp tcurses.ACS_GEQUAL(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_GEQUALjp tcurses.ACS_HLINE(jm jn >https://docs.python.org/3/library/curses.html#curses.ACS_HLINEjp tcurses.ACS_LANTERN(jm jn @https://docs.python.org/3/library/curses.html#curses.ACS_LANTERNjp tcurses.ACS_LARROW(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_LARROWjp tcurses.ACS_LEQUAL(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_LEQUALjp tcurses.ACS_LLCORNER(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.ACS_LLCORNERjp tcurses.ACS_LRCORNER(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.ACS_LRCORNERjp tcurses.ACS_LTEE(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_LTEEjp tcurses.ACS_NEQUAL(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_NEQUALjp t curses.ACS_PI(jm jn ;https://docs.python.org/3/library/curses.html#curses.ACS_PIjp tcurses.ACS_PLMINUS(jm jn @https://docs.python.org/3/library/curses.html#curses.ACS_PLMINUSjp tcurses.ACS_PLUS(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_PLUSjp tcurses.ACS_RARROW(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_RARROWjp tcurses.ACS_RTEE(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_RTEEjp t curses.ACS_S1(jm jn ;https://docs.python.org/3/library/curses.html#curses.ACS_S1jp t curses.ACS_S3(jm jn ;https://docs.python.org/3/library/curses.html#curses.ACS_S3jp t curses.ACS_S7(jm jn ;https://docs.python.org/3/library/curses.html#curses.ACS_S7jp t curses.ACS_S9(jm jn ;https://docs.python.org/3/library/curses.html#curses.ACS_S9jp tcurses.ACS_SBBS(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_SBBSjp tcurses.ACS_SBSB(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_SBSBjp tcurses.ACS_SBSS(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_SBSSjp tcurses.ACS_SSBB(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_SSBBjp tcurses.ACS_SSBS(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_SSBSjp tcurses.ACS_SSSB(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_SSSBjp tcurses.ACS_SSSS(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_SSSSjp tcurses.ACS_STERLING(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.ACS_STERLINGjp tcurses.ACS_TTEE(jm jn =https://docs.python.org/3/library/curses.html#curses.ACS_TTEEjp tcurses.ACS_UARROW(jm jn ?https://docs.python.org/3/library/curses.html#curses.ACS_UARROWjp tcurses.ACS_ULCORNER(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.ACS_ULCORNERjp tcurses.ACS_URCORNER(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.ACS_URCORNERjp tcurses.ACS_VLINE(jm jn >https://docs.python.org/3/library/curses.html#curses.ACS_VLINEjp tcurses.A_ALTCHARSET(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.A_ALTCHARSETjp tcurses.A_ATTRIBUTES(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.A_ATTRIBUTESjp tcurses.A_BLINK(jm jn https://docs.python.org/3/library/curses.html#curses.A_PROTECTjp tcurses.A_REVERSE(jm jn >https://docs.python.org/3/library/curses.html#curses.A_REVERSEjp tcurses.A_RIGHT(jm jn https://docs.python.org/3/library/curses.html#curses.COLOR_REDjp tcurses.COLOR_WHITE(jm jn @https://docs.python.org/3/library/curses.html#curses.COLOR_WHITEjp tcurses.COLOR_YELLOW(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.COLOR_YELLOWjp t curses.COLS(jm jn 9https://docs.python.org/3/library/curses.html#curses.COLSjp t curses.ERR(jm jn 8https://docs.python.org/3/library/curses.html#curses.ERRjp t curses.KEY_A1(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_A1jp t curses.KEY_A3(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_A3jp t curses.KEY_B2(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_B2jp tcurses.KEY_BACKSPACE(jm jn Bhttps://docs.python.org/3/library/curses.html#curses.KEY_BACKSPACEjp tcurses.KEY_BEG(jm jn https://docs.python.org/3/library/curses.html#curses.KEY_BREAKjp tcurses.KEY_BTAB(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_BTABjp t curses.KEY_C1(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_C1jp t curses.KEY_C3(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_C3jp tcurses.KEY_CANCEL(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_CANCELjp tcurses.KEY_CATAB(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_CATABjp tcurses.KEY_CLEAR(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_CLEARjp tcurses.KEY_CLOSE(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_CLOSEjp tcurses.KEY_COMMAND(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_COMMANDjp tcurses.KEY_COPY(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_COPYjp tcurses.KEY_CREATE(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_CREATEjp tcurses.KEY_CTAB(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_CTABjp t curses.KEY_DC(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_DCjp t curses.KEY_DL(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_DLjp tcurses.KEY_DOWN(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_DOWNjp tcurses.KEY_EIC(jm jn https://docs.python.org/3/library/curses.html#curses.KEY_ENTERjp tcurses.KEY_EOL(jm jn https://docs.python.org/3/library/curses.html#curses.KEY_MOUSEjp tcurses.KEY_MOVE(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_MOVEjp tcurses.KEY_NEXT(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_NEXTjp tcurses.KEY_NPAGE(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_NPAGEjp tcurses.KEY_OPEN(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_OPENjp tcurses.KEY_OPTIONS(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_OPTIONSjp tcurses.KEY_PPAGE(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_PPAGEjp tcurses.KEY_PREVIOUS(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.KEY_PREVIOUSjp tcurses.KEY_PRINT(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_PRINTjp tcurses.KEY_REDO(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_REDOjp tcurses.KEY_REFERENCE(jm jn Bhttps://docs.python.org/3/library/curses.html#curses.KEY_REFERENCEjp tcurses.KEY_REFRESH(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_REFRESHjp tcurses.KEY_REPLACE(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_REPLACEjp tcurses.KEY_RESET(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_RESETjp tcurses.KEY_RESIZE(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_RESIZEjp tcurses.KEY_RESTART(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_RESTARTjp tcurses.KEY_RESUME(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_RESUMEjp tcurses.KEY_RIGHT(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_RIGHTjp tcurses.KEY_SAVE(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_SAVEjp tcurses.KEY_SBEG(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_SBEGjp tcurses.KEY_SCANCEL(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_SCANCELjp tcurses.KEY_SCOMMAND(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.KEY_SCOMMANDjp tcurses.KEY_SCOPY(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SCOPYjp tcurses.KEY_SCREATE(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_SCREATEjp tcurses.KEY_SDC(jm jn https://docs.python.org/3/library/curses.html#curses.KEY_SEXITjp t curses.KEY_SF(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_SFjp tcurses.KEY_SFIND(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SFINDjp tcurses.KEY_SHELP(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SHELPjp tcurses.KEY_SHOME(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SHOMEjp tcurses.KEY_SIC(jm jn https://docs.python.org/3/library/curses.html#curses.KEY_SLEFTjp tcurses.KEY_SMESSAGE(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.KEY_SMESSAGEjp tcurses.KEY_SMOVE(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SMOVEjp tcurses.KEY_SNEXT(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SNEXTjp tcurses.KEY_SOPTIONS(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.KEY_SOPTIONSjp tcurses.KEY_SPREVIOUS(jm jn Bhttps://docs.python.org/3/library/curses.html#curses.KEY_SPREVIOUSjp tcurses.KEY_SPRINT(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_SPRINTjp t curses.KEY_SR(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_SRjp tcurses.KEY_SREDO(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SREDOjp tcurses.KEY_SREPLACE(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.KEY_SREPLACEjp tcurses.KEY_SRESET(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_SRESETjp tcurses.KEY_SRIGHT(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_SRIGHTjp tcurses.KEY_SRSUME(jm jn ?https://docs.python.org/3/library/curses.html#curses.KEY_SRSUMEjp tcurses.KEY_SSAVE(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SSAVEjp tcurses.KEY_SSUSPEND(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.KEY_SSUSPENDjp tcurses.KEY_STAB(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_STABjp tcurses.KEY_SUNDO(jm jn >https://docs.python.org/3/library/curses.html#curses.KEY_SUNDOjp tcurses.KEY_SUSPEND(jm jn @https://docs.python.org/3/library/curses.html#curses.KEY_SUSPENDjp tcurses.KEY_UNDO(jm jn =https://docs.python.org/3/library/curses.html#curses.KEY_UNDOjp t curses.KEY_UP(jm jn ;https://docs.python.org/3/library/curses.html#curses.KEY_UPjp t curses.LINES(jm jn :https://docs.python.org/3/library/curses.html#curses.LINESjp t curses.OK(jm jn 7https://docs.python.org/3/library/curses.html#curses.OKjp tcurses.__version__(jm jn @https://docs.python.org/3/library/curses.html#curses.__version__jp tcurses.ascii.ACK(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ACKjp tcurses.ascii.BEL(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.BELjp tcurses.ascii.BS(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.BSjp tcurses.ascii.CAN(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.CANjp tcurses.ascii.CR(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.CRjp tcurses.ascii.DC1(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC1jp tcurses.ascii.DC2(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC2jp tcurses.ascii.DC3(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC3jp tcurses.ascii.DC4(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC4jp tcurses.ascii.DEL(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DELjp tcurses.ascii.DLE(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DLEjp tcurses.ascii.EM(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.EMjp tcurses.ascii.ENQ(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ENQjp tcurses.ascii.EOT(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.EOTjp tcurses.ascii.ESC(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ESCjp tcurses.ascii.ETB(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ETBjp tcurses.ascii.ETX(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ETXjp tcurses.ascii.FF(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.FFjp tcurses.ascii.FS(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.FSjp tcurses.ascii.GS(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.GSjp tcurses.ascii.HT(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.HTjp tcurses.ascii.LF(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.LFjp tcurses.ascii.NAK(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.NAKjp tcurses.ascii.NL(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.NLjp tcurses.ascii.NUL(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.NULjp tcurses.ascii.RS(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.RSjp tcurses.ascii.SI(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SIjp tcurses.ascii.SO(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SOjp tcurses.ascii.SOH(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SOHjp tcurses.ascii.SP(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SPjp tcurses.ascii.STX(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.STXjp tcurses.ascii.SUB(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SUBjp tcurses.ascii.SYN(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SYNjp tcurses.ascii.TAB(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.TABjp tcurses.ascii.US(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.USjp tcurses.ascii.VT(jm jn Chttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.VTjp tcurses.ascii.controlnames(jm jn Mhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.controlnamesjp tcurses.ncurses_version(jm jn Dhttps://docs.python.org/3/library/curses.html#curses.ncurses_versionjp tcurses.version(jm jn https://docs.python.org/3/library/dis.html#dis.Instruction.argjp tdis.Instruction.argrepr(jm jn Bhttps://docs.python.org/3/library/dis.html#dis.Instruction.argreprjp tdis.Instruction.argval(jm jn Ahttps://docs.python.org/3/library/dis.html#dis.Instruction.argvaljp tdis.Instruction.is_jump_target(jm jn Ihttps://docs.python.org/3/library/dis.html#dis.Instruction.is_jump_targetjp tdis.Instruction.offset(jm jn Ahttps://docs.python.org/3/library/dis.html#dis.Instruction.offsetjp tdis.Instruction.opcode(jm jn Ahttps://docs.python.org/3/library/dis.html#dis.Instruction.opcodejp tdis.Instruction.opname(jm jn Ahttps://docs.python.org/3/library/dis.html#dis.Instruction.opnamejp tdis.Instruction.positions(jm jn Dhttps://docs.python.org/3/library/dis.html#dis.Instruction.positionsjp tdis.Instruction.starts_line(jm jn Fhttps://docs.python.org/3/library/dis.html#dis.Instruction.starts_linejp tdis.Positions.col_offset(jm jn Chttps://docs.python.org/3/library/dis.html#dis.Positions.col_offsetjp tdis.Positions.end_col_offset(jm jn Ghttps://docs.python.org/3/library/dis.html#dis.Positions.end_col_offsetjp tdis.Positions.end_lineno(jm jn Chttps://docs.python.org/3/library/dis.html#dis.Positions.end_linenojp tdis.Positions.lineno(jm jn ?https://docs.python.org/3/library/dis.html#dis.Positions.linenojp t dis.cmp_op(jm jn 5https://docs.python.org/3/library/dis.html#dis.cmp_opjp tdis.hascompare(jm jn 9https://docs.python.org/3/library/dis.html#dis.hascomparejp t dis.hasconst(jm jn 7https://docs.python.org/3/library/dis.html#dis.hasconstjp t dis.hasfree(jm jn 6https://docs.python.org/3/library/dis.html#dis.hasfreejp t dis.hasjabs(jm jn 6https://docs.python.org/3/library/dis.html#dis.hasjabsjp t dis.hasjrel(jm jn 6https://docs.python.org/3/library/dis.html#dis.hasjreljp t dis.haslocal(jm jn 7https://docs.python.org/3/library/dis.html#dis.haslocaljp t dis.hasname(jm jn 6https://docs.python.org/3/library/dis.html#dis.hasnamejp t dis.opmap(jm jn 4https://docs.python.org/3/library/dis.html#dis.opmapjp t dis.opname(jm jn 5https://docs.python.org/3/library/dis.html#dis.opnamejp tdistutils.sysconfig.EXEC_PREFIX(jm jn Ohttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.EXEC_PREFIXjp tdistutils.sysconfig.PREFIX(jm jn Jhttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.PREFIXjp tdoctest.COMPARISON_FLAGS(jm jn Ghttps://docs.python.org/3/library/doctest.html#doctest.COMPARISON_FLAGSjp tdoctest.DONT_ACCEPT_BLANKLINE(jm jn Lhttps://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_BLANKLINEjp tdoctest.DONT_ACCEPT_TRUE_FOR_1(jm jn Mhttps://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_TRUE_FOR_1jp tdoctest.ELLIPSIS(jm jn ?https://docs.python.org/3/library/doctest.html#doctest.ELLIPSISjp tdoctest.FAIL_FAST(jm jn @https://docs.python.org/3/library/doctest.html#doctest.FAIL_FASTjp tdoctest.IGNORE_EXCEPTION_DETAIL(jm jn Nhttps://docs.python.org/3/library/doctest.html#doctest.IGNORE_EXCEPTION_DETAILjp tdoctest.NORMALIZE_WHITESPACE(jm jn Khttps://docs.python.org/3/library/doctest.html#doctest.NORMALIZE_WHITESPACEjp tdoctest.REPORTING_FLAGS(jm jn Fhttps://docs.python.org/3/library/doctest.html#doctest.REPORTING_FLAGSjp tdoctest.REPORT_CDIFF(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest.REPORT_CDIFFjp tdoctest.REPORT_NDIFF(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest.REPORT_NDIFFjp t!doctest.REPORT_ONLY_FIRST_FAILURE(jm jn Phttps://docs.python.org/3/library/doctest.html#doctest.REPORT_ONLY_FIRST_FAILUREjp tdoctest.REPORT_UDIFF(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest.REPORT_UDIFFjp t doctest.SKIP(jm jn ;https://docs.python.org/3/library/doctest.html#doctest.SKIPjp t%email.contentmanager.raw_data_manager(jm jn ahttps://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.raw_data_managerjp temail.policy.HTTP(jm jn Ehttps://docs.python.org/3/library/email.policy.html#email.policy.HTTPjp temail.policy.SMTP(jm jn Ehttps://docs.python.org/3/library/email.policy.html#email.policy.SMTPjp temail.policy.SMTPUTF8(jm jn Ihttps://docs.python.org/3/library/email.policy.html#email.policy.SMTPUTF8jp temail.policy.compat32(jm jn Ihttps://docs.python.org/3/library/email.policy.html#email.policy.compat32jp temail.policy.default(jm jn Hhttps://docs.python.org/3/library/email.policy.html#email.policy.defaultjp temail.policy.strict(jm jn Ghttps://docs.python.org/3/library/email.policy.html#email.policy.strictjp t errno.E2BIG(jm jn 8https://docs.python.org/3/library/errno.html#errno.E2BIGjp t errno.EACCES(jm jn 9https://docs.python.org/3/library/errno.html#errno.EACCESjp terrno.EADDRINUSE(jm jn =https://docs.python.org/3/library/errno.html#errno.EADDRINUSEjp terrno.EADDRNOTAVAIL(jm jn @https://docs.python.org/3/library/errno.html#errno.EADDRNOTAVAILjp t errno.EADV(jm jn 7https://docs.python.org/3/library/errno.html#errno.EADVjp terrno.EAFNOSUPPORT(jm jn ?https://docs.python.org/3/library/errno.html#errno.EAFNOSUPPORTjp t errno.EAGAIN(jm jn 9https://docs.python.org/3/library/errno.html#errno.EAGAINjp terrno.EALREADY(jm jn ;https://docs.python.org/3/library/errno.html#errno.EALREADYjp t errno.EBADE(jm jn 8https://docs.python.org/3/library/errno.html#errno.EBADEjp t errno.EBADF(jm jn 8https://docs.python.org/3/library/errno.html#errno.EBADFjp t errno.EBADFD(jm jn 9https://docs.python.org/3/library/errno.html#errno.EBADFDjp t errno.EBADMSG(jm jn :https://docs.python.org/3/library/errno.html#errno.EBADMSGjp t errno.EBADR(jm jn 8https://docs.python.org/3/library/errno.html#errno.EBADRjp t errno.EBADRQC(jm jn :https://docs.python.org/3/library/errno.html#errno.EBADRQCjp t errno.EBADSLT(jm jn :https://docs.python.org/3/library/errno.html#errno.EBADSLTjp t errno.EBFONT(jm jn 9https://docs.python.org/3/library/errno.html#errno.EBFONTjp t errno.EBUSY(jm jn 8https://docs.python.org/3/library/errno.html#errno.EBUSYjp t errno.ECHILD(jm jn 9https://docs.python.org/3/library/errno.html#errno.ECHILDjp t errno.ECHRNG(jm jn 9https://docs.python.org/3/library/errno.html#errno.ECHRNGjp t errno.ECOMM(jm jn 8https://docs.python.org/3/library/errno.html#errno.ECOMMjp terrno.ECONNABORTED(jm jn ?https://docs.python.org/3/library/errno.html#errno.ECONNABORTEDjp terrno.ECONNREFUSED(jm jn ?https://docs.python.org/3/library/errno.html#errno.ECONNREFUSEDjp terrno.ECONNRESET(jm jn =https://docs.python.org/3/library/errno.html#errno.ECONNRESETjp t errno.EDEADLK(jm jn :https://docs.python.org/3/library/errno.html#errno.EDEADLKjp terrno.EDEADLOCK(jm jn https://docs.python.org/3/library/errno.html#errno.EINPROGRESSjp t errno.EINTR(jm jn 8https://docs.python.org/3/library/errno.html#errno.EINTRjp t errno.EINVAL(jm jn 9https://docs.python.org/3/library/errno.html#errno.EINVALjp t errno.EIO(jm jn 6https://docs.python.org/3/library/errno.html#errno.EIOjp t errno.EISCONN(jm jn :https://docs.python.org/3/library/errno.html#errno.EISCONNjp t errno.EISDIR(jm jn 9https://docs.python.org/3/library/errno.html#errno.EISDIRjp t errno.EISNAM(jm jn 9https://docs.python.org/3/library/errno.html#errno.EISNAMjp t errno.EL2HLT(jm jn 9https://docs.python.org/3/library/errno.html#errno.EL2HLTjp terrno.EL2NSYNC(jm jn ;https://docs.python.org/3/library/errno.html#errno.EL2NSYNCjp t errno.EL3HLT(jm jn 9https://docs.python.org/3/library/errno.html#errno.EL3HLTjp t errno.EL3RST(jm jn 9https://docs.python.org/3/library/errno.html#errno.EL3RSTjp t errno.ELIBACC(jm jn :https://docs.python.org/3/library/errno.html#errno.ELIBACCjp t errno.ELIBBAD(jm jn :https://docs.python.org/3/library/errno.html#errno.ELIBBADjp terrno.ELIBEXEC(jm jn ;https://docs.python.org/3/library/errno.html#errno.ELIBEXECjp t errno.ELIBMAX(jm jn :https://docs.python.org/3/library/errno.html#errno.ELIBMAXjp t errno.ELIBSCN(jm jn :https://docs.python.org/3/library/errno.html#errno.ELIBSCNjp t errno.ELNRNG(jm jn 9https://docs.python.org/3/library/errno.html#errno.ELNRNGjp t errno.ELOOP(jm jn 8https://docs.python.org/3/library/errno.html#errno.ELOOPjp t errno.EMFILE(jm jn 9https://docs.python.org/3/library/errno.html#errno.EMFILEjp t errno.EMLINK(jm jn 9https://docs.python.org/3/library/errno.html#errno.EMLINKjp terrno.EMSGSIZE(jm jn ;https://docs.python.org/3/library/errno.html#errno.EMSGSIZEjp terrno.EMULTIHOP(jm jn https://docs.python.org/3/library/errno.html#errno.ENETUNREACHjp t errno.ENFILE(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENFILEjp t errno.ENOANO(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOANOjp t errno.ENOBUFS(jm jn :https://docs.python.org/3/library/errno.html#errno.ENOBUFSjp t errno.ENOCSI(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOCSIjp t errno.ENODATA(jm jn :https://docs.python.org/3/library/errno.html#errno.ENODATAjp t errno.ENODEV(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENODEVjp t errno.ENOENT(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOENTjp t errno.ENOEXEC(jm jn :https://docs.python.org/3/library/errno.html#errno.ENOEXECjp t errno.ENOLCK(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOLCKjp t errno.ENOLINK(jm jn :https://docs.python.org/3/library/errno.html#errno.ENOLINKjp t errno.ENOMEM(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOMEMjp t errno.ENOMSG(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOMSGjp t errno.ENONET(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENONETjp t errno.ENOPKG(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOPKGjp terrno.ENOPROTOOPT(jm jn >https://docs.python.org/3/library/errno.html#errno.ENOPROTOOPTjp t errno.ENOSPC(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOSPCjp t errno.ENOSR(jm jn 8https://docs.python.org/3/library/errno.html#errno.ENOSRjp t errno.ENOSTR(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOSTRjp t errno.ENOSYS(jm jn 9https://docs.python.org/3/library/errno.html#errno.ENOSYSjp t errno.ENOTBLK(jm jn :https://docs.python.org/3/library/errno.html#errno.ENOTBLKjp terrno.ENOTCAPABLE(jm jn >https://docs.python.org/3/library/errno.html#errno.ENOTCAPABLEjp terrno.ENOTCONN(jm jn ;https://docs.python.org/3/library/errno.html#errno.ENOTCONNjp t errno.ENOTDIR(jm jn :https://docs.python.org/3/library/errno.html#errno.ENOTDIRjp terrno.ENOTEMPTY(jm jn https://docs.python.org/3/library/errno.html#errno.EWOULDBLOCKjp t errno.EXDEV(jm jn 8https://docs.python.org/3/library/errno.html#errno.EXDEVjp t errno.EXFULL(jm jn 9https://docs.python.org/3/library/errno.html#errno.EXFULLjp terrno.errorcode(jm jn https://docs.python.org/3/library/gc.html#gc.DEBUG_COLLECTABLEjp t gc.DEBUG_LEAK(jm jn 7https://docs.python.org/3/library/gc.html#gc.DEBUG_LEAKjp tgc.DEBUG_SAVEALL(jm jn :https://docs.python.org/3/library/gc.html#gc.DEBUG_SAVEALLjp tgc.DEBUG_STATS(jm jn 8https://docs.python.org/3/library/gc.html#gc.DEBUG_STATSjp tgc.DEBUG_UNCOLLECTABLE(jm jn @https://docs.python.org/3/library/gc.html#gc.DEBUG_UNCOLLECTABLEjp t gc.callbacks(jm jn 6https://docs.python.org/3/library/gc.html#gc.callbacksjp t gc.garbage(jm jn 4https://docs.python.org/3/library/gc.html#gc.garbagejp thashlib.algorithms_available(jm jn Khttps://docs.python.org/3/library/hashlib.html#hashlib.algorithms_availablejp thashlib.algorithms_guaranteed(jm jn Lhttps://docs.python.org/3/library/hashlib.html#hashlib.algorithms_guaranteedjp thashlib.blake2b.MAX_DIGEST_SIZE(jm jn Nhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.MAX_DIGEST_SIZEjp thashlib.blake2b.MAX_KEY_SIZE(jm jn Khttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.MAX_KEY_SIZEjp thashlib.blake2b.PERSON_SIZE(jm jn Jhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.PERSON_SIZEjp thashlib.blake2b.SALT_SIZE(jm jn Hhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.SALT_SIZEjp thashlib.blake2s.MAX_DIGEST_SIZE(jm jn Nhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.MAX_DIGEST_SIZEjp thashlib.blake2s.MAX_KEY_SIZE(jm jn Khttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.MAX_KEY_SIZEjp thashlib.blake2s.PERSON_SIZE(jm jn Jhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.PERSON_SIZEjp thashlib.blake2s.SALT_SIZE(jm jn Hhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.SALT_SIZEjp thashlib.hash.block_size(jm jn Fhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.block_sizejp thashlib.hash.digest_size(jm jn Ghttps://docs.python.org/3/library/hashlib.html#hashlib.hash.digest_sizejp thtml.entities.codepoint2name(jm jn Qhttps://docs.python.org/3/library/html.entities.html#html.entities.codepoint2namejp thtml.entities.entitydefs(jm jn Mhttps://docs.python.org/3/library/html.entities.html#html.entities.entitydefsjp thtml.entities.html5(jm jn Hhttps://docs.python.org/3/library/html.entities.html#html.entities.html5jp thtml.entities.name2codepoint(jm jn Qhttps://docs.python.org/3/library/html.entities.html#html.entities.name2codepointjp thttp.client.HTTPS_PORT(jm jn Ihttps://docs.python.org/3/library/http.client.html#http.client.HTTPS_PORTjp thttp.client.HTTP_PORT(jm jn Hhttps://docs.python.org/3/library/http.client.html#http.client.HTTP_PORTjp thttp.client.responses(jm jn Hhttps://docs.python.org/3/library/http.client.html#http.client.responsesjp t imghdr.tests(jm jn :https://docs.python.org/3/library/imghdr.html#imghdr.testsjp t imp.C_BUILTIN(jm jn 8https://docs.python.org/3/library/imp.html#imp.C_BUILTINjp timp.C_EXTENSION(jm jn :https://docs.python.org/3/library/imp.html#imp.C_EXTENSIONjp timp.PKG_DIRECTORY(jm jn https://docs.python.org/3/library/locale.html#locale.ERA_D_FMTjp tlocale.ERA_D_T_FMT(jm jn @https://docs.python.org/3/library/locale.html#locale.ERA_D_T_FMTjp tlocale.ERA_T_FMT(jm jn >https://docs.python.org/3/library/locale.html#locale.ERA_T_FMTjp t locale.LC_ALL(jm jn ;https://docs.python.org/3/library/locale.html#locale.LC_ALLjp tlocale.LC_COLLATE(jm jn ?https://docs.python.org/3/library/locale.html#locale.LC_COLLATEjp tlocale.LC_CTYPE(jm jn =https://docs.python.org/3/library/locale.html#locale.LC_CTYPEjp tlocale.LC_MESSAGES(jm jn @https://docs.python.org/3/library/locale.html#locale.LC_MESSAGESjp tlocale.LC_MONETARY(jm jn @https://docs.python.org/3/library/locale.html#locale.LC_MONETARYjp tlocale.LC_NUMERIC(jm jn ?https://docs.python.org/3/library/locale.html#locale.LC_NUMERICjp tlocale.LC_TIME(jm jn https://docs.python.org/3/library/locale.html#locale.RADIXCHARjp tlocale.THOUSEP(jm jn https://docs.python.org/3/library/logging.html#logging.WARNINGjp tmarshal.version(jm jn >https://docs.python.org/3/library/marshal.html#marshal.versionjp tmath.e(jm jn 2https://docs.python.org/3/library/math.html#math.ejp tmath.inf(jm jn 4https://docs.python.org/3/library/math.html#math.infjp tmath.nan(jm jn 4https://docs.python.org/3/library/math.html#math.nanjp tmath.pi(jm jn 3https://docs.python.org/3/library/math.html#math.pijp tmath.tau(jm jn 4https://docs.python.org/3/library/math.html#math.taujp tmimetypes.common_types(jm jn Ghttps://docs.python.org/3/library/mimetypes.html#mimetypes.common_typesjp tmimetypes.encodings_map(jm jn Hhttps://docs.python.org/3/library/mimetypes.html#mimetypes.encodings_mapjp tmimetypes.inited(jm jn Ahttps://docs.python.org/3/library/mimetypes.html#mimetypes.initedjp tmimetypes.knownfiles(jm jn Ehttps://docs.python.org/3/library/mimetypes.html#mimetypes.knownfilesjp tmimetypes.suffix_map(jm jn Ehttps://docs.python.org/3/library/mimetypes.html#mimetypes.suffix_mapjp tmimetypes.types_map(jm jn Dhttps://docs.python.org/3/library/mimetypes.html#mimetypes.types_mapjp tmmap.MADV_AUTOSYNC(jm jn >https://docs.python.org/3/library/mmap.html#mmap.MADV_AUTOSYNCjp tmmap.MADV_CORE(jm jn :https://docs.python.org/3/library/mmap.html#mmap.MADV_COREjp tmmap.MADV_DODUMP(jm jn https://docs.python.org/3/library/mmap.html#mmap.MADV_DONTDUMPjp tmmap.MADV_DONTFORK(jm jn >https://docs.python.org/3/library/mmap.html#mmap.MADV_DONTFORKjp tmmap.MADV_DONTNEED(jm jn >https://docs.python.org/3/library/mmap.html#mmap.MADV_DONTNEEDjp tmmap.MADV_FREE(jm jn :https://docs.python.org/3/library/mmap.html#mmap.MADV_FREEjp tmmap.MADV_FREE_REUSABLE(jm jn Chttps://docs.python.org/3/library/mmap.html#mmap.MADV_FREE_REUSABLEjp tmmap.MADV_FREE_REUSE(jm jn @https://docs.python.org/3/library/mmap.html#mmap.MADV_FREE_REUSEjp tmmap.MADV_HUGEPAGE(jm jn >https://docs.python.org/3/library/mmap.html#mmap.MADV_HUGEPAGEjp tmmap.MADV_HWPOISON(jm jn >https://docs.python.org/3/library/mmap.html#mmap.MADV_HWPOISONjp tmmap.MADV_MERGEABLE(jm jn ?https://docs.python.org/3/library/mmap.html#mmap.MADV_MERGEABLEjp tmmap.MADV_NOCORE(jm jn https://docs.python.org/3/library/mmap.html#mmap.MADV_WILLNEEDjp t mmap.MAP_ANON(jm jn 9https://docs.python.org/3/library/mmap.html#mmap.MAP_ANONjp tmmap.MAP_ANONYMOUS(jm jn >https://docs.python.org/3/library/mmap.html#mmap.MAP_ANONYMOUSjp tmmap.MAP_DENYWRITE(jm jn >https://docs.python.org/3/library/mmap.html#mmap.MAP_DENYWRITEjp tmmap.MAP_EXECUTABLE(jm jn ?https://docs.python.org/3/library/mmap.html#mmap.MAP_EXECUTABLEjp tmmap.MAP_POPULATE(jm jn =https://docs.python.org/3/library/mmap.html#mmap.MAP_POPULATEjp tmmap.MAP_PRIVATE(jm jn https://docs.python.org/3/library/msvcrt.html#msvcrt.LK_NBRLCKjp tmsvcrt.LK_RLCK(jm jn https://docs.python.org/3/library/os.html#os.MFD_ALLOW_SEALINGjp tos.MFD_CLOEXEC(jm jn 8https://docs.python.org/3/library/os.html#os.MFD_CLOEXECjp tos.MFD_HUGETLB(jm jn 8https://docs.python.org/3/library/os.html#os.MFD_HUGETLBjp tos.MFD_HUGE_16GB(jm jn :https://docs.python.org/3/library/os.html#os.MFD_HUGE_16GBjp tos.MFD_HUGE_16MB(jm jn :https://docs.python.org/3/library/os.html#os.MFD_HUGE_16MBjp tos.MFD_HUGE_1GB(jm jn 9https://docs.python.org/3/library/os.html#os.MFD_HUGE_1GBjp tos.MFD_HUGE_1MB(jm jn 9https://docs.python.org/3/library/os.html#os.MFD_HUGE_1MBjp tos.MFD_HUGE_256MB(jm jn ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_256MBjp tos.MFD_HUGE_2GB(jm jn 9https://docs.python.org/3/library/os.html#os.MFD_HUGE_2GBjp tos.MFD_HUGE_2MB(jm jn 9https://docs.python.org/3/library/os.html#os.MFD_HUGE_2MBjp tos.MFD_HUGE_32MB(jm jn :https://docs.python.org/3/library/os.html#os.MFD_HUGE_32MBjp tos.MFD_HUGE_512KB(jm jn ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_512KBjp tos.MFD_HUGE_512MB(jm jn ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_512MBjp tos.MFD_HUGE_64KB(jm jn :https://docs.python.org/3/library/os.html#os.MFD_HUGE_64KBjp tos.MFD_HUGE_8MB(jm jn 9https://docs.python.org/3/library/os.html#os.MFD_HUGE_8MBjp tos.MFD_HUGE_MASK(jm jn :https://docs.python.org/3/library/os.html#os.MFD_HUGE_MASKjp tos.MFD_HUGE_SHIFT(jm jn ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_SHIFTjp t os.O_APPEND(jm jn 5https://docs.python.org/3/library/os.html#os.O_APPENDjp t os.O_ASYNC(jm jn 4https://docs.python.org/3/library/os.html#os.O_ASYNCjp t os.O_BINARY(jm jn 5https://docs.python.org/3/library/os.html#os.O_BINARYjp t os.O_CLOEXEC(jm jn 6https://docs.python.org/3/library/os.html#os.O_CLOEXECjp t os.O_CREAT(jm jn 4https://docs.python.org/3/library/os.html#os.O_CREATjp t os.O_DIRECT(jm jn 5https://docs.python.org/3/library/os.html#os.O_DIRECTjp tos.O_DIRECTORY(jm jn 8https://docs.python.org/3/library/os.html#os.O_DIRECTORYjp t os.O_DSYNC(jm jn 4https://docs.python.org/3/library/os.html#os.O_DSYNCjp t os.O_EVTONLY(jm jn 6https://docs.python.org/3/library/os.html#os.O_EVTONLYjp t os.O_EXCL(jm jn 3https://docs.python.org/3/library/os.html#os.O_EXCLjp t os.O_EXLOCK(jm jn 5https://docs.python.org/3/library/os.html#os.O_EXLOCKjp t os.O_FSYNC(jm jn 4https://docs.python.org/3/library/os.html#os.O_FSYNCjp t os.O_NDELAY(jm jn 5https://docs.python.org/3/library/os.html#os.O_NDELAYjp t os.O_NOATIME(jm jn 6https://docs.python.org/3/library/os.html#os.O_NOATIMEjp t os.O_NOCTTY(jm jn 5https://docs.python.org/3/library/os.html#os.O_NOCTTYjp t os.O_NOFOLLOW(jm jn 7https://docs.python.org/3/library/os.html#os.O_NOFOLLOWjp tos.O_NOFOLLOW_ANY(jm jn ;https://docs.python.org/3/library/os.html#os.O_NOFOLLOW_ANYjp tos.O_NOINHERIT(jm jn 8https://docs.python.org/3/library/os.html#os.O_NOINHERITjp t os.O_NONBLOCK(jm jn 7https://docs.python.org/3/library/os.html#os.O_NONBLOCKjp t os.O_PATH(jm jn 3https://docs.python.org/3/library/os.html#os.O_PATHjp t os.O_RANDOM(jm jn 5https://docs.python.org/3/library/os.html#os.O_RANDOMjp t os.O_RDONLY(jm jn 5https://docs.python.org/3/library/os.html#os.O_RDONLYjp t os.O_RDWR(jm jn 3https://docs.python.org/3/library/os.html#os.O_RDWRjp t os.O_RSYNC(jm jn 4https://docs.python.org/3/library/os.html#os.O_RSYNCjp tos.O_SEQUENTIAL(jm jn 9https://docs.python.org/3/library/os.html#os.O_SEQUENTIALjp t os.O_SHLOCK(jm jn 5https://docs.python.org/3/library/os.html#os.O_SHLOCKjp tos.O_SHORT_LIVED(jm jn :https://docs.python.org/3/library/os.html#os.O_SHORT_LIVEDjp t os.O_SYMLINK(jm jn 6https://docs.python.org/3/library/os.html#os.O_SYMLINKjp t os.O_SYNC(jm jn 3https://docs.python.org/3/library/os.html#os.O_SYNCjp tos.O_TEMPORARY(jm jn 8https://docs.python.org/3/library/os.html#os.O_TEMPORARYjp t os.O_TEXT(jm jn 3https://docs.python.org/3/library/os.html#os.O_TEXTjp t os.O_TMPFILE(jm jn 6https://docs.python.org/3/library/os.html#os.O_TMPFILEjp t os.O_TRUNC(jm jn 4https://docs.python.org/3/library/os.html#os.O_TRUNCjp t os.O_WRONLY(jm jn 5https://docs.python.org/3/library/os.html#os.O_WRONLYjp tos.POSIX_FADV_DONTNEED(jm jn @https://docs.python.org/3/library/os.html#os.POSIX_FADV_DONTNEEDjp tos.POSIX_FADV_NOREUSE(jm jn ?https://docs.python.org/3/library/os.html#os.POSIX_FADV_NOREUSEjp tos.POSIX_FADV_NORMAL(jm jn >https://docs.python.org/3/library/os.html#os.POSIX_FADV_NORMALjp tos.POSIX_FADV_RANDOM(jm jn >https://docs.python.org/3/library/os.html#os.POSIX_FADV_RANDOMjp tos.POSIX_FADV_SEQUENTIAL(jm jn Bhttps://docs.python.org/3/library/os.html#os.POSIX_FADV_SEQUENTIALjp tos.POSIX_FADV_WILLNEED(jm jn @https://docs.python.org/3/library/os.html#os.POSIX_FADV_WILLNEEDjp tos.POSIX_SPAWN_CLOSE(jm jn >https://docs.python.org/3/library/os.html#os.POSIX_SPAWN_CLOSEjp tos.POSIX_SPAWN_DUP2(jm jn =https://docs.python.org/3/library/os.html#os.POSIX_SPAWN_DUP2jp tos.POSIX_SPAWN_OPEN(jm jn =https://docs.python.org/3/library/os.html#os.POSIX_SPAWN_OPENjp t os.PRIO_PGRP(jm jn 6https://docs.python.org/3/library/os.html#os.PRIO_PGRPjp tos.PRIO_PROCESS(jm jn 9https://docs.python.org/3/library/os.html#os.PRIO_PROCESSjp t os.PRIO_USER(jm jn 6https://docs.python.org/3/library/os.html#os.PRIO_USERjp tos.P_ALL(jm jn 2https://docs.python.org/3/library/os.html#os.P_ALLjp t os.P_DETACH(jm jn 5https://docs.python.org/3/library/os.html#os.P_DETACHjp t os.P_NOWAIT(jm jn 5https://docs.python.org/3/library/os.html#os.P_NOWAITjp t os.P_NOWAITO(jm jn 6https://docs.python.org/3/library/os.html#os.P_NOWAITOjp t os.P_OVERLAY(jm jn 6https://docs.python.org/3/library/os.html#os.P_OVERLAYjp t os.P_PGID(jm jn 3https://docs.python.org/3/library/os.html#os.P_PGIDjp tos.P_PID(jm jn 2https://docs.python.org/3/library/os.html#os.P_PIDjp t os.P_PIDFD(jm jn 4https://docs.python.org/3/library/os.html#os.P_PIDFDjp t os.P_WAIT(jm jn 3https://docs.python.org/3/library/os.html#os.P_WAITjp tos.RTLD_DEEPBIND(jm jn :https://docs.python.org/3/library/os.html#os.RTLD_DEEPBINDjp tos.RTLD_GLOBAL(jm jn 8https://docs.python.org/3/library/os.html#os.RTLD_GLOBALjp t os.RTLD_LAZY(jm jn 6https://docs.python.org/3/library/os.html#os.RTLD_LAZYjp t os.RTLD_LOCAL(jm jn 7https://docs.python.org/3/library/os.html#os.RTLD_LOCALjp tos.RTLD_NODELETE(jm jn :https://docs.python.org/3/library/os.html#os.RTLD_NODELETEjp tos.RTLD_NOLOAD(jm jn 8https://docs.python.org/3/library/os.html#os.RTLD_NOLOADjp t os.RTLD_NOW(jm jn 5https://docs.python.org/3/library/os.html#os.RTLD_NOWjp t os.RWF_APPEND(jm jn 7https://docs.python.org/3/library/os.html#os.RWF_APPENDjp t os.RWF_DSYNC(jm jn 6https://docs.python.org/3/library/os.html#os.RWF_DSYNCjp t os.RWF_HIPRI(jm jn 6https://docs.python.org/3/library/os.html#os.RWF_HIPRIjp t os.RWF_NOWAIT(jm jn 7https://docs.python.org/3/library/os.html#os.RWF_NOWAITjp t os.RWF_SYNC(jm jn 5https://docs.python.org/3/library/os.html#os.RWF_SYNCjp tos.R_OK(jm jn 1https://docs.python.org/3/library/os.html#os.R_OKjp tos.SCHED_BATCH(jm jn 8https://docs.python.org/3/library/os.html#os.SCHED_BATCHjp t os.SCHED_FIFO(jm jn 7https://docs.python.org/3/library/os.html#os.SCHED_FIFOjp t os.SCHED_IDLE(jm jn 7https://docs.python.org/3/library/os.html#os.SCHED_IDLEjp tos.SCHED_OTHER(jm jn 8https://docs.python.org/3/library/os.html#os.SCHED_OTHERjp tos.SCHED_RESET_ON_FORK(jm jn @https://docs.python.org/3/library/os.html#os.SCHED_RESET_ON_FORKjp t os.SCHED_RR(jm jn 5https://docs.python.org/3/library/os.html#os.SCHED_RRjp tos.SCHED_SPORADIC(jm jn ;https://docs.python.org/3/library/os.html#os.SCHED_SPORADICjp t os.SEEK_CUR(jm jn 5https://docs.python.org/3/library/os.html#os.SEEK_CURjp t os.SEEK_END(jm jn 5https://docs.python.org/3/library/os.html#os.SEEK_ENDjp t os.SEEK_SET(jm jn 5https://docs.python.org/3/library/os.html#os.SEEK_SETjp t os.SF_MNOWAIT(jm jn 7https://docs.python.org/3/library/os.html#os.SF_MNOWAITjp t os.SF_NOCACHE(jm jn 7https://docs.python.org/3/library/os.html#os.SF_NOCACHEjp tos.SF_NODISKIO(jm jn 8https://docs.python.org/3/library/os.html#os.SF_NODISKIOjp t os.SF_SYNC(jm jn 4https://docs.python.org/3/library/os.html#os.SF_SYNCjp tos.SPLICE_F_MORE(jm jn :https://docs.python.org/3/library/os.html#os.SPLICE_F_MOREjp tos.SPLICE_F_MOVE(jm jn :https://docs.python.org/3/library/os.html#os.SPLICE_F_MOVEjp tos.SPLICE_F_NONBLOCK(jm jn >https://docs.python.org/3/library/os.html#os.SPLICE_F_NONBLOCKjp t os.WCONTINUED(jm jn 7https://docs.python.org/3/library/os.html#os.WCONTINUEDjp t os.WEXITED(jm jn 4https://docs.python.org/3/library/os.html#os.WEXITEDjp t os.WNOHANG(jm jn 4https://docs.python.org/3/library/os.html#os.WNOHANGjp t os.WNOWAIT(jm jn 4https://docs.python.org/3/library/os.html#os.WNOWAITjp t os.WSTOPPED(jm jn 5https://docs.python.org/3/library/os.html#os.WSTOPPEDjp t os.WUNTRACED(jm jn 6https://docs.python.org/3/library/os.html#os.WUNTRACEDjp tos.W_OK(jm jn 1https://docs.python.org/3/library/os.html#os.W_OKjp tos.XATTR_CREATE(jm jn 9https://docs.python.org/3/library/os.html#os.XATTR_CREATEjp tos.XATTR_REPLACE(jm jn :https://docs.python.org/3/library/os.html#os.XATTR_REPLACEjp tos.XATTR_SIZE_MAX(jm jn ;https://docs.python.org/3/library/os.html#os.XATTR_SIZE_MAXjp tos.X_OK(jm jn 1https://docs.python.org/3/library/os.html#os.X_OKjp t os.altsep(jm jn 3https://docs.python.org/3/library/os.html#os.altsepjp tos.confstr_names(jm jn :https://docs.python.org/3/library/os.html#os.confstr_namesjp t os.curdir(jm jn 3https://docs.python.org/3/library/os.html#os.curdirjp t os.defpath(jm jn 4https://docs.python.org/3/library/os.html#os.defpathjp t os.devnull(jm jn 4https://docs.python.org/3/library/os.html#os.devnulljp t os.environ(jm jn 4https://docs.python.org/3/library/os.html#os.environjp t os.environb(jm jn 5https://docs.python.org/3/library/os.html#os.environbjp t os.extsep(jm jn 3https://docs.python.org/3/library/os.html#os.extsepjp t os.linesep(jm jn 4https://docs.python.org/3/library/os.html#os.linesepjp tos.name(jm jn 1https://docs.python.org/3/library/os.html#os.namejp t os.pardir(jm jn 3https://docs.python.org/3/library/os.html#os.pardirjp t"os.path.supports_unicode_filenames(jm jn Qhttps://docs.python.org/3/library/os.path.html#os.path.supports_unicode_filenamesjp tos.pathconf_names(jm jn ;https://docs.python.org/3/library/os.html#os.pathconf_namesjp t os.pathsep(jm jn 4https://docs.python.org/3/library/os.html#os.pathsepjp tos.sep(jm jn 0https://docs.python.org/3/library/os.html#os.sepjp tos.supports_bytes_environ(jm jn Chttps://docs.python.org/3/library/os.html#os.supports_bytes_environjp tos.supports_dir_fd(jm jn https://docs.python.org/3/library/signal.html#signal.SIGSTKFLTjp tsignal.SIGTERM(jm jn https://docs.python.org/3/library/signal.html#signal.SIG_BLOCKjp tsignal.SIG_DFL(jm jn https://docs.python.org/3/library/socket.html#socket.AF_PACKETjp tsocket.AF_QIPCRTR(jm jn ?https://docs.python.org/3/library/socket.html#socket.AF_QIPCRTRjp t socket.AF_RDS(jm jn ;https://docs.python.org/3/library/socket.html#socket.AF_RDSjp tsocket.AF_UNIX(jm jn https://docs.python.org/3/library/socket.html#socket.CAN_ISOTPjp tsocket.CAN_J1939(jm jn >https://docs.python.org/3/library/socket.html#socket.CAN_J1939jp tsocket.CAN_RAW_FD_FRAMES(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.CAN_RAW_FD_FRAMESjp tsocket.CAN_RAW_JOIN_FILTERS(jm jn Ihttps://docs.python.org/3/library/socket.html#socket.CAN_RAW_JOIN_FILTERSjp tsocket.HCI_DATA_DIR(jm jn Ahttps://docs.python.org/3/library/socket.html#socket.HCI_DATA_DIRjp tsocket.HCI_FILTER(jm jn ?https://docs.python.org/3/library/socket.html#socket.HCI_FILTERjp tsocket.HCI_TIME_STAMP(jm jn Chttps://docs.python.org/3/library/socket.html#socket.HCI_TIME_STAMPjp t%socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID(jm jn Shttps://docs.python.org/3/library/socket.html#socket.IOCTL_VM_SOCKETS_GET_LOCAL_CIDjp tsocket.LOCAL_CREDS(jm jn @https://docs.python.org/3/library/socket.html#socket.LOCAL_CREDSjp tsocket.LOCAL_CREDS_PERSISTENT(jm jn Khttps://docs.python.org/3/library/socket.html#socket.LOCAL_CREDS_PERSISTENTjp t socket.PF_CAN(jm jn ;https://docs.python.org/3/library/socket.html#socket.PF_CANjp tsocket.PF_PACKET(jm jn >https://docs.python.org/3/library/socket.html#socket.PF_PACKETjp t socket.PF_RDS(jm jn ;https://docs.python.org/3/library/socket.html#socket.PF_RDSjp tsocket.SCM_CREDS2(jm jn ?https://docs.python.org/3/library/socket.html#socket.SCM_CREDS2jp tsocket.SIO_KEEPALIVE_VALS(jm jn Ghttps://docs.python.org/3/library/socket.html#socket.SIO_KEEPALIVE_VALSjp tsocket.SIO_LOOPBACK_FAST_PATH(jm jn Khttps://docs.python.org/3/library/socket.html#socket.SIO_LOOPBACK_FAST_PATHjp tsocket.SIO_RCVALL(jm jn ?https://docs.python.org/3/library/socket.html#socket.SIO_RCVALLjp tsocket.SOCK_CLOEXEC(jm jn Ahttps://docs.python.org/3/library/socket.html#socket.SOCK_CLOEXECjp tsocket.SOCK_DGRAM(jm jn ?https://docs.python.org/3/library/socket.html#socket.SOCK_DGRAMjp tsocket.SOCK_NONBLOCK(jm jn Bhttps://docs.python.org/3/library/socket.html#socket.SOCK_NONBLOCKjp tsocket.SOCK_RAW(jm jn =https://docs.python.org/3/library/socket.html#socket.SOCK_RAWjp tsocket.SOCK_RDM(jm jn =https://docs.python.org/3/library/socket.html#socket.SOCK_RDMjp tsocket.SOCK_SEQPACKET(jm jn Chttps://docs.python.org/3/library/socket.html#socket.SOCK_SEQPACKETjp tsocket.SOCK_STREAM(jm jn @https://docs.python.org/3/library/socket.html#socket.SOCK_STREAMjp tsocket.SOL_ALG(jm jn https://docs.python.org/3/library/socket.html#socket.SOMAXCONNjp tsocket.SO_INCOMING_CPU(jm jn Dhttps://docs.python.org/3/library/socket.html#socket.SO_INCOMING_CPUjp tsocket.SocketType(jm jn ?https://docs.python.org/3/library/socket.html#socket.SocketTypejp tsocket.has_ipv6(jm jn =https://docs.python.org/3/library/socket.html#socket.has_ipv6jp tsqlite3.PARSE_COLNAMES(jm jn Ehttps://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_COLNAMESjp tsqlite3.PARSE_DECLTYPES(jm jn Fhttps://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_DECLTYPESjp tsqlite3.SQLITE_DENY(jm jn Bhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DENYjp tsqlite3.SQLITE_IGNORE(jm jn Dhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_IGNOREjp tsqlite3.SQLITE_OK(jm jn @https://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_OKjp tsqlite3.apilevel(jm jn ?https://docs.python.org/3/library/sqlite3.html#sqlite3.apileveljp tsqlite3.paramstyle(jm jn Ahttps://docs.python.org/3/library/sqlite3.html#sqlite3.paramstylejp tsqlite3.sqlite_version(jm jn Ehttps://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_versionjp tsqlite3.sqlite_version_info(jm jn Jhttps://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_version_infojp tsqlite3.threadsafety(jm jn Chttps://docs.python.org/3/library/sqlite3.html#sqlite3.threadsafetyjp tsqlite3.version(jm jn >https://docs.python.org/3/library/sqlite3.html#sqlite3.versionjp tsqlite3.version_info(jm jn Chttps://docs.python.org/3/library/sqlite3.html#sqlite3.version_infojp t'ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILURE(jm jn Rhttps://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILUREjp t$ssl.ALERT_DESCRIPTION_INTERNAL_ERROR(jm jn Ohttps://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_INTERNAL_ERRORjp t ssl.CERT_NONE(jm jn 8https://docs.python.org/3/library/ssl.html#ssl.CERT_NONEjp tssl.CERT_OPTIONAL(jm jn https://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSIONjp tssl.OPENSSL_VERSION_INFO(jm jn Chttps://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_INFOjp tssl.OPENSSL_VERSION_NUMBER(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_NUMBERjp t ssl.OP_ALL(jm jn 5https://docs.python.org/3/library/ssl.html#ssl.OP_ALLjp tssl.OP_CIPHER_SERVER_PREFERENCE(jm jn Jhttps://docs.python.org/3/library/ssl.html#ssl.OP_CIPHER_SERVER_PREFERENCEjp tssl.OP_ENABLE_MIDDLEBOX_COMPAT(jm jn Ihttps://docs.python.org/3/library/ssl.html#ssl.OP_ENABLE_MIDDLEBOX_COMPATjp tssl.OP_IGNORE_UNEXPECTED_EOF(jm jn Ghttps://docs.python.org/3/library/ssl.html#ssl.OP_IGNORE_UNEXPECTED_EOFjp tssl.OP_NO_COMPRESSION(jm jn @https://docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSIONjp tssl.OP_NO_RENEGOTIATION(jm jn Bhttps://docs.python.org/3/library/ssl.html#ssl.OP_NO_RENEGOTIATIONjp tssl.OP_NO_SSLv2(jm jn :https://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv2jp tssl.OP_NO_SSLv3(jm jn :https://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv3jp tssl.OP_NO_TICKET(jm jn ;https://docs.python.org/3/library/ssl.html#ssl.OP_NO_TICKETjp tssl.OP_NO_TLSv1(jm jn :https://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1jp tssl.OP_NO_TLSv1_1(jm jn https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv23jp tssl.PROTOCOL_SSLv3(jm jn =https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv3jp tssl.PROTOCOL_TLS(jm jn ;https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSjp tssl.PROTOCOL_TLS_CLIENT(jm jn Bhttps://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLS_CLIENTjp tssl.PROTOCOL_TLS_SERVER(jm jn Bhttps://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLS_SERVERjp tssl.PROTOCOL_TLSv1(jm jn =https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1jp tssl.PROTOCOL_TLSv1_1(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_1jp tssl.PROTOCOL_TLSv1_2(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_2jp tssl.Purpose.CLIENT_AUTH(jm jn Bhttps://docs.python.org/3/library/ssl.html#ssl.Purpose.CLIENT_AUTHjp tssl.Purpose.SERVER_AUTH(jm jn Bhttps://docs.python.org/3/library/ssl.html#ssl.Purpose.SERVER_AUTHjp tssl.VERIFY_ALLOW_PROXY_CERTS(jm jn Ghttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_ALLOW_PROXY_CERTSjp tssl.VERIFY_CRL_CHECK_CHAIN(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_CHAINjp tssl.VERIFY_CRL_CHECK_LEAF(jm jn Dhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_LEAFjp tssl.VERIFY_DEFAULT(jm jn =https://docs.python.org/3/library/ssl.html#ssl.VERIFY_DEFAULTjp tssl.VERIFY_X509_PARTIAL_CHAIN(jm jn Hhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_PARTIAL_CHAINjp tssl.VERIFY_X509_STRICT(jm jn Ahttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_STRICTjp tssl.VERIFY_X509_TRUSTED_FIRST(jm jn Hhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_TRUSTED_FIRSTjp tstat.FILE_ATTRIBUTE_ARCHIVE(jm jn Ghttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_ARCHIVEjp tstat.FILE_ATTRIBUTE_COMPRESSED(jm jn Jhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_COMPRESSEDjp tstat.FILE_ATTRIBUTE_DEVICE(jm jn Fhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_DEVICEjp tstat.FILE_ATTRIBUTE_DIRECTORY(jm jn Ihttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_DIRECTORYjp tstat.FILE_ATTRIBUTE_ENCRYPTED(jm jn Ihttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_ENCRYPTEDjp tstat.FILE_ATTRIBUTE_HIDDEN(jm jn Fhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_HIDDENjp t$stat.FILE_ATTRIBUTE_INTEGRITY_STREAM(jm jn Phttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_INTEGRITY_STREAMjp tstat.FILE_ATTRIBUTE_NORMAL(jm jn Fhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_NORMALjp t'stat.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED(jm jn Shttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_NOT_CONTENT_INDEXEDjp t!stat.FILE_ATTRIBUTE_NO_SCRUB_DATA(jm jn Mhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_NO_SCRUB_DATAjp tstat.FILE_ATTRIBUTE_OFFLINE(jm jn Ghttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_OFFLINEjp tstat.FILE_ATTRIBUTE_READONLY(jm jn Hhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_READONLYjp t!stat.FILE_ATTRIBUTE_REPARSE_POINT(jm jn Mhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_REPARSE_POINTjp tstat.FILE_ATTRIBUTE_SPARSE_FILE(jm jn Khttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_SPARSE_FILEjp tstat.FILE_ATTRIBUTE_SYSTEM(jm jn Fhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_SYSTEMjp tstat.FILE_ATTRIBUTE_TEMPORARY(jm jn Ihttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_TEMPORARYjp tstat.FILE_ATTRIBUTE_VIRTUAL(jm jn Ghttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_VIRTUALjp tstat.IO_REPARSE_TAG_APPEXECLINK(jm jn Khttps://docs.python.org/3/library/stat.html#stat.IO_REPARSE_TAG_APPEXECLINKjp tstat.IO_REPARSE_TAG_MOUNT_POINT(jm jn Khttps://docs.python.org/3/library/stat.html#stat.IO_REPARSE_TAG_MOUNT_POINTjp tstat.IO_REPARSE_TAG_SYMLINK(jm jn Ghttps://docs.python.org/3/library/stat.html#stat.IO_REPARSE_TAG_SYMLINKjp tstat.SF_APPEND(jm jn :https://docs.python.org/3/library/stat.html#stat.SF_APPENDjp tstat.SF_ARCHIVED(jm jn https://docs.python.org/3/library/stat.html#stat.UF_COMPRESSEDjp tstat.UF_HIDDEN(jm jn :https://docs.python.org/3/library/stat.html#stat.UF_HIDDENjp tstat.UF_IMMUTABLE(jm jn =https://docs.python.org/3/library/stat.html#stat.UF_IMMUTABLEjp tstat.UF_NODUMP(jm jn :https://docs.python.org/3/library/stat.html#stat.UF_NODUMPjp tstat.UF_NOUNLINK(jm jn https://docs.python.org/3/library/string.html#string.hexdigitsjp tstring.octdigits(jm jn >https://docs.python.org/3/library/string.html#string.octdigitsjp tstring.printable(jm jn >https://docs.python.org/3/library/string.html#string.printablejp tstring.punctuation(jm jn @https://docs.python.org/3/library/string.html#string.punctuationjp tstring.whitespace(jm jn ?https://docs.python.org/3/library/string.html#string.whitespacejp t&subprocess.ABOVE_NORMAL_PRIORITY_CLASS(jm jn Xhttps://docs.python.org/3/library/subprocess.html#subprocess.ABOVE_NORMAL_PRIORITY_CLASSjp t&subprocess.BELOW_NORMAL_PRIORITY_CLASS(jm jn Xhttps://docs.python.org/3/library/subprocess.html#subprocess.BELOW_NORMAL_PRIORITY_CLASSjp t$subprocess.CREATE_BREAKAWAY_FROM_JOB(jm jn Vhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_BREAKAWAY_FROM_JOBjp t$subprocess.CREATE_DEFAULT_ERROR_MODE(jm jn Vhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_DEFAULT_ERROR_MODEjp tsubprocess.CREATE_NEW_CONSOLE(jm jn Ohttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_CONSOLEjp t#subprocess.CREATE_NEW_PROCESS_GROUP(jm jn Uhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_PROCESS_GROUPjp tsubprocess.CREATE_NO_WINDOW(jm jn Mhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NO_WINDOWjp tsubprocess.DETACHED_PROCESS(jm jn Mhttps://docs.python.org/3/library/subprocess.html#subprocess.DETACHED_PROCESSjp tsubprocess.DEVNULL(jm jn Dhttps://docs.python.org/3/library/subprocess.html#subprocess.DEVNULLjp tsubprocess.HIGH_PRIORITY_CLASS(jm jn Phttps://docs.python.org/3/library/subprocess.html#subprocess.HIGH_PRIORITY_CLASSjp tsubprocess.IDLE_PRIORITY_CLASS(jm jn Phttps://docs.python.org/3/library/subprocess.html#subprocess.IDLE_PRIORITY_CLASSjp t subprocess.NORMAL_PRIORITY_CLASS(jm jn Rhttps://docs.python.org/3/library/subprocess.html#subprocess.NORMAL_PRIORITY_CLASSjp tsubprocess.PIPE(jm jn Ahttps://docs.python.org/3/library/subprocess.html#subprocess.PIPEjp t"subprocess.REALTIME_PRIORITY_CLASS(jm jn Thttps://docs.python.org/3/library/subprocess.html#subprocess.REALTIME_PRIORITY_CLASSjp tsubprocess.STARTF_USESHOWWINDOW(jm jn Qhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESHOWWINDOWjp tsubprocess.STARTF_USESTDHANDLES(jm jn Qhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESTDHANDLESjp tsubprocess.STDOUT(jm jn Chttps://docs.python.org/3/library/subprocess.html#subprocess.STDOUTjp tsubprocess.STD_ERROR_HANDLE(jm jn Mhttps://docs.python.org/3/library/subprocess.html#subprocess.STD_ERROR_HANDLEjp tsubprocess.STD_INPUT_HANDLE(jm jn Mhttps://docs.python.org/3/library/subprocess.html#subprocess.STD_INPUT_HANDLEjp tsubprocess.STD_OUTPUT_HANDLE(jm jn Nhttps://docs.python.org/3/library/subprocess.html#subprocess.STD_OUTPUT_HANDLEjp tsubprocess.SW_HIDE(jm jn Dhttps://docs.python.org/3/library/subprocess.html#subprocess.SW_HIDEjp t$sunau.AUDIO_FILE_ENCODING_ADPCM_G721(jm jn Qhttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G721jp t$sunau.AUDIO_FILE_ENCODING_ADPCM_G722(jm jn Qhttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G722jp t&sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3(jm jn Shttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3jp t&sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5(jm jn Shttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5jp t sunau.AUDIO_FILE_ENCODING_ALAW_8(jm jn Mhttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_ALAW_8jp t sunau.AUDIO_FILE_ENCODING_DOUBLE(jm jn Mhttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_DOUBLEjp tsunau.AUDIO_FILE_ENCODING_FLOAT(jm jn Lhttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_FLOATjp t#sunau.AUDIO_FILE_ENCODING_LINEAR_16(jm jn Phttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_16jp t#sunau.AUDIO_FILE_ENCODING_LINEAR_24(jm jn Phttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_24jp t#sunau.AUDIO_FILE_ENCODING_LINEAR_32(jm jn Phttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_32jp t"sunau.AUDIO_FILE_ENCODING_LINEAR_8(jm jn Ohttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_LINEAR_8jp t!sunau.AUDIO_FILE_ENCODING_MULAW_8(jm jn Nhttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_ENCODING_MULAW_8jp tsunau.AUDIO_FILE_MAGIC(jm jn Chttps://docs.python.org/3/library/sunau.html#sunau.AUDIO_FILE_MAGICjp tsys.__breakpointhook__(jm jn Ahttps://docs.python.org/3/library/sys.html#sys.__breakpointhook__jp tsys.__displayhook__(jm jn >https://docs.python.org/3/library/sys.html#sys.__displayhook__jp tsys.__excepthook__(jm jn =https://docs.python.org/3/library/sys.html#sys.__excepthook__jp tsys.__interactivehook__(jm jn Bhttps://docs.python.org/3/library/sys.html#sys.__interactivehook__jp tsys.__stderr__(jm jn 9https://docs.python.org/3/library/sys.html#sys.__stderr__jp t sys.__stdin__(jm jn 8https://docs.python.org/3/library/sys.html#sys.__stdin__jp tsys.__stdout__(jm jn 9https://docs.python.org/3/library/sys.html#sys.__stdout__jp tsys.__unraisablehook__(jm jn Ahttps://docs.python.org/3/library/sys.html#sys.__unraisablehook__jp tsys._emscripten_info(jm jn ?https://docs.python.org/3/library/sys.html#sys._emscripten_infojp t sys._xoptions(jm jn 8https://docs.python.org/3/library/sys.html#sys._xoptionsjp t sys.abiflags(jm jn 7https://docs.python.org/3/library/sys.html#sys.abiflagsjp tsys.api_version(jm jn :https://docs.python.org/3/library/sys.html#sys.api_versionjp tsys.argv(jm jn 3https://docs.python.org/3/library/sys.html#sys.argvjp tsys.base_exec_prefix(jm jn ?https://docs.python.org/3/library/sys.html#sys.base_exec_prefixjp tsys.base_prefix(jm jn :https://docs.python.org/3/library/sys.html#sys.base_prefixjp tsys.builtin_module_names(jm jn Chttps://docs.python.org/3/library/sys.html#sys.builtin_module_namesjp t sys.byteorder(jm jn 8https://docs.python.org/3/library/sys.html#sys.byteorderjp t sys.copyright(jm jn 8https://docs.python.org/3/library/sys.html#sys.copyrightjp t sys.dllhandle(jm jn 8https://docs.python.org/3/library/sys.html#sys.dllhandlejp tsys.dont_write_bytecode(jm jn Bhttps://docs.python.org/3/library/sys.html#sys.dont_write_bytecodejp tsys.exec_prefix(jm jn :https://docs.python.org/3/library/sys.html#sys.exec_prefixjp tsys.executable(jm jn 9https://docs.python.org/3/library/sys.html#sys.executablejp t sys.flags(jm jn 4https://docs.python.org/3/library/sys.html#sys.flagsjp tsys.float_info(jm jn 9https://docs.python.org/3/library/sys.html#sys.float_infojp tsys.float_repr_style(jm jn ?https://docs.python.org/3/library/sys.html#sys.float_repr_stylejp t sys.hash_info(jm jn 8https://docs.python.org/3/library/sys.html#sys.hash_infojp tsys.hexversion(jm jn 9https://docs.python.org/3/library/sys.html#sys.hexversionjp tsys.implementation(jm jn =https://docs.python.org/3/library/sys.html#sys.implementationjp t sys.int_info(jm jn 7https://docs.python.org/3/library/sys.html#sys.int_infojp tsys.last_traceback(jm jn =https://docs.python.org/3/library/sys.html#sys.last_tracebackjp t sys.last_type(jm jn 8https://docs.python.org/3/library/sys.html#sys.last_typejp tsys.last_value(jm jn 9https://docs.python.org/3/library/sys.html#sys.last_valuejp t sys.maxsize(jm jn 6https://docs.python.org/3/library/sys.html#sys.maxsizejp tsys.maxunicode(jm jn 9https://docs.python.org/3/library/sys.html#sys.maxunicodejp t sys.meta_path(jm jn 8https://docs.python.org/3/library/sys.html#sys.meta_pathjp t sys.modules(jm jn 6https://docs.python.org/3/library/sys.html#sys.modulesjp t sys.orig_argv(jm jn 8https://docs.python.org/3/library/sys.html#sys.orig_argvjp tsys.path(jm jn 3https://docs.python.org/3/library/sys.html#sys.pathjp tsys.path_hooks(jm jn 9https://docs.python.org/3/library/sys.html#sys.path_hooksjp tsys.path_importer_cache(jm jn Bhttps://docs.python.org/3/library/sys.html#sys.path_importer_cachejp t sys.platform(jm jn 7https://docs.python.org/3/library/sys.html#sys.platformjp tsys.platlibdir(jm jn 9https://docs.python.org/3/library/sys.html#sys.platlibdirjp t sys.prefix(jm jn 5https://docs.python.org/3/library/sys.html#sys.prefixjp tsys.ps1(jm jn 2https://docs.python.org/3/library/sys.html#sys.ps1jp tsys.ps2(jm jn 2https://docs.python.org/3/library/sys.html#sys.ps2jp tsys.pycache_prefix(jm jn =https://docs.python.org/3/library/sys.html#sys.pycache_prefixjp t sys.stderr(jm jn 5https://docs.python.org/3/library/sys.html#sys.stderrjp t sys.stdin(jm jn 4https://docs.python.org/3/library/sys.html#sys.stdinjp tsys.stdlib_module_names(jm jn Bhttps://docs.python.org/3/library/sys.html#sys.stdlib_module_namesjp t sys.stdout(jm jn 5https://docs.python.org/3/library/sys.html#sys.stdoutjp tsys.thread_info(jm jn :https://docs.python.org/3/library/sys.html#sys.thread_infojp tsys.tracebacklimit(jm jn =https://docs.python.org/3/library/sys.html#sys.tracebacklimitjp t sys.version(jm jn 6https://docs.python.org/3/library/sys.html#sys.versionjp tsys.version_info(jm jn ;https://docs.python.org/3/library/sys.html#sys.version_infojp tsys.warnoptions(jm jn :https://docs.python.org/3/library/sys.html#sys.warnoptionsjp t sys.winver(jm jn 5https://docs.python.org/3/library/sys.html#sys.winverjp ttabnanny.filename_only(jm jn Fhttps://docs.python.org/3/library/tabnanny.html#tabnanny.filename_onlyjp ttabnanny.verbose(jm jn @https://docs.python.org/3/library/tabnanny.html#tabnanny.verbosejp ttarfile.DEFAULT_FORMAT(jm jn Ehttps://docs.python.org/3/library/tarfile.html#tarfile.DEFAULT_FORMATjp ttarfile.ENCODING(jm jn ?https://docs.python.org/3/library/tarfile.html#tarfile.ENCODINGjp ttarfile.GNU_FORMAT(jm jn Ahttps://docs.python.org/3/library/tarfile.html#tarfile.GNU_FORMATjp ttarfile.PAX_FORMAT(jm jn Ahttps://docs.python.org/3/library/tarfile.html#tarfile.PAX_FORMATjp ttarfile.USTAR_FORMAT(jm jn Chttps://docs.python.org/3/library/tarfile.html#tarfile.USTAR_FORMATjp ttempfile.tempdir(jm jn @https://docs.python.org/3/library/tempfile.html#tempfile.tempdirjp ttest.support.ALWAYS_EQ(jm jn Bhttps://docs.python.org/3/library/test.html#test.support.ALWAYS_EQjp ttest.support.HAVE_DOCSTRINGS(jm jn Hhttps://docs.python.org/3/library/test.html#test.support.HAVE_DOCSTRINGSjp ttest.support.INTERNET_TIMEOUT(jm jn Ihttps://docs.python.org/3/library/test.html#test.support.INTERNET_TIMEOUTjp ttest.support.LARGEST(jm jn @https://docs.python.org/3/library/test.html#test.support.LARGESTjp ttest.support.LONG_TIMEOUT(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.LONG_TIMEOUTjp ttest.support.LOOPBACK_TIMEOUT(jm jn Ihttps://docs.python.org/3/library/test.html#test.support.LOOPBACK_TIMEOUTjp ttest.support.MAX_Py_ssize_t(jm jn Ghttps://docs.python.org/3/library/test.html#test.support.MAX_Py_ssize_tjp t!test.support.MISSING_C_DOCSTRINGS(jm jn Mhttps://docs.python.org/3/library/test.html#test.support.MISSING_C_DOCSTRINGSjp ttest.support.NEVER_EQ(jm jn Ahttps://docs.python.org/3/library/test.html#test.support.NEVER_EQjp ttest.support.PGO(jm jn https://docs.python.org/3/library/time.html#time.CLOCK_HIGHRESjp ttime.CLOCK_MONOTONIC(jm jn @https://docs.python.org/3/library/time.html#time.CLOCK_MONOTONICjp ttime.CLOCK_MONOTONIC_RAW(jm jn Dhttps://docs.python.org/3/library/time.html#time.CLOCK_MONOTONIC_RAWjp ttime.CLOCK_PROCESS_CPUTIME_ID(jm jn Ihttps://docs.python.org/3/library/time.html#time.CLOCK_PROCESS_CPUTIME_IDjp ttime.CLOCK_PROF(jm jn ;https://docs.python.org/3/library/time.html#time.CLOCK_PROFjp ttime.CLOCK_REALTIME(jm jn ?https://docs.python.org/3/library/time.html#time.CLOCK_REALTIMEjp ttime.CLOCK_TAI(jm jn :https://docs.python.org/3/library/time.html#time.CLOCK_TAIjp ttime.CLOCK_THREAD_CPUTIME_ID(jm jn Hhttps://docs.python.org/3/library/time.html#time.CLOCK_THREAD_CPUTIME_IDjp ttime.CLOCK_UPTIME(jm jn =https://docs.python.org/3/library/time.html#time.CLOCK_UPTIMEjp ttime.CLOCK_UPTIME_RAW(jm jn Ahttps://docs.python.org/3/library/time.html#time.CLOCK_UPTIME_RAWjp t time.altzone(jm jn 8https://docs.python.org/3/library/time.html#time.altzonejp t time.daylight(jm jn 9https://docs.python.org/3/library/time.html#time.daylightjp t time.timezone(jm jn 9https://docs.python.org/3/library/time.html#time.timezonejp t time.tzname(jm jn 7https://docs.python.org/3/library/time.html#time.tznamejp ttkinter.EXCEPTION(jm jn @https://docs.python.org/3/library/tkinter.html#tkinter.EXCEPTIONjp ttkinter.READABLE(jm jn ?https://docs.python.org/3/library/tkinter.html#tkinter.READABLEjp ttkinter.WRITABLE(jm jn ?https://docs.python.org/3/library/tkinter.html#tkinter.WRITABLEjp ttkinter.font.BOLD(jm jn Ehttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.BOLDjp ttkinter.font.ITALIC(jm jn Ghttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.ITALICjp ttkinter.font.NORMAL(jm jn Ghttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.NORMALjp ttkinter.font.ROMAN(jm jn Fhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.ROMANjp t token.AMPER(jm jn 8https://docs.python.org/3/library/token.html#token.AMPERjp ttoken.AMPEREQUAL(jm jn =https://docs.python.org/3/library/token.html#token.AMPEREQUALjp t token.ASYNC(jm jn 8https://docs.python.org/3/library/token.html#token.ASYNCjp ttoken.AT(jm jn 5https://docs.python.org/3/library/token.html#token.ATjp t token.ATEQUAL(jm jn :https://docs.python.org/3/library/token.html#token.ATEQUALjp t token.AWAIT(jm jn 8https://docs.python.org/3/library/token.html#token.AWAITjp ttoken.CIRCUMFLEX(jm jn =https://docs.python.org/3/library/token.html#token.CIRCUMFLEXjp ttoken.CIRCUMFLEXEQUAL(jm jn Bhttps://docs.python.org/3/library/token.html#token.CIRCUMFLEXEQUALjp t token.COLON(jm jn 8https://docs.python.org/3/library/token.html#token.COLONjp ttoken.COLONEQUAL(jm jn =https://docs.python.org/3/library/token.html#token.COLONEQUALjp t token.COMMA(jm jn 8https://docs.python.org/3/library/token.html#token.COMMAjp t token.COMMENT(jm jn :https://docs.python.org/3/library/token.html#token.COMMENTjp t token.DEDENT(jm jn 9https://docs.python.org/3/library/token.html#token.DEDENTjp t token.DOT(jm jn 6https://docs.python.org/3/library/token.html#token.DOTjp ttoken.DOUBLESLASH(jm jn >https://docs.python.org/3/library/token.html#token.DOUBLESLASHjp ttoken.DOUBLESLASHEQUAL(jm jn Chttps://docs.python.org/3/library/token.html#token.DOUBLESLASHEQUALjp ttoken.DOUBLESTAR(jm jn =https://docs.python.org/3/library/token.html#token.DOUBLESTARjp ttoken.DOUBLESTAREQUAL(jm jn Bhttps://docs.python.org/3/library/token.html#token.DOUBLESTAREQUALjp ttoken.ELLIPSIS(jm jn ;https://docs.python.org/3/library/token.html#token.ELLIPSISjp ttoken.ENCODING(jm jn ;https://docs.python.org/3/library/token.html#token.ENCODINGjp ttoken.ENDMARKER(jm jn https://docs.python.org/3/library/token.html#token.TYPE_IGNOREjp t token.VBAR(jm jn 7https://docs.python.org/3/library/token.html#token.VBARjp ttoken.VBAREQUAL(jm jn https://docs.python.org/3/library/typing.html#typing.Annotatedjp t typing.Any(jm jn 8https://docs.python.org/3/library/typing.html#typing.Anyjp t typing.AnyStr(jm jn ;https://docs.python.org/3/library/typing.html#typing.AnyStrjp ttyping.Callable(jm jn =https://docs.python.org/3/library/typing.html#typing.Callablejp ttyping.ClassVar(jm jn =https://docs.python.org/3/library/typing.html#typing.ClassVarjp ttyping.Concatenate(jm jn @https://docs.python.org/3/library/typing.html#typing.Concatenatejp t typing.Final(jm jn :https://docs.python.org/3/library/typing.html#typing.Finaljp ttyping.Literal(jm jn https://docs.python.org/3/library/typing.html#typing.TypeAliasjp ttyping.TypeGuard(jm jn >https://docs.python.org/3/library/typing.html#typing.TypeGuardjp t typing.Union(jm jn :https://docs.python.org/3/library/typing.html#typing.Unionjp t typing.Unpack(jm jn ;https://docs.python.org/3/library/typing.html#typing.Unpackjp tunicodedata.ucd_3_2_0(jm jn Hhttps://docs.python.org/3/library/unicodedata.html#unicodedata.ucd_3_2_0jp tunicodedata.unidata_version(jm jn Nhttps://docs.python.org/3/library/unicodedata.html#unicodedata.unidata_versionjp tunittest.defaultTestLoader(jm jn Jhttps://docs.python.org/3/library/unittest.html#unittest.defaultTestLoaderjp tunittest.mock.ANY(jm jn Fhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.ANYjp tunittest.mock.DEFAULT(jm jn Jhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.DEFAULTjp tunittest.mock.FILTER_DIR(jm jn Mhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.FILTER_DIRjp tunittest.mock.sentinel(jm jn Khttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.sentineljp tuuid.NAMESPACE_DNS(jm jn >https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_DNSjp tuuid.NAMESPACE_OID(jm jn >https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_OIDjp tuuid.NAMESPACE_URL(jm jn >https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_URLjp tuuid.NAMESPACE_X500(jm jn ?https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_X500jp tuuid.RESERVED_FUTURE(jm jn @https://docs.python.org/3/library/uuid.html#uuid.RESERVED_FUTUREjp tuuid.RESERVED_MICROSOFT(jm jn Chttps://docs.python.org/3/library/uuid.html#uuid.RESERVED_MICROSOFTjp tuuid.RESERVED_NCS(jm jn =https://docs.python.org/3/library/uuid.html#uuid.RESERVED_NCSjp t uuid.RFC_4122(jm jn 9https://docs.python.org/3/library/uuid.html#uuid.RFC_4122jp tweakref.CallableProxyType(jm jn Hhttps://docs.python.org/3/library/weakref.html#weakref.CallableProxyTypejp tweakref.ProxyType(jm jn @https://docs.python.org/3/library/weakref.html#weakref.ProxyTypejp tweakref.ProxyTypes(jm jn Ahttps://docs.python.org/3/library/weakref.html#weakref.ProxyTypesjp tweakref.ReferenceType(jm jn Dhttps://docs.python.org/3/library/weakref.html#weakref.ReferenceTypejp twinreg.HKEY_CLASSES_ROOT(jm jn Fhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_CLASSES_ROOTjp twinreg.HKEY_CURRENT_CONFIG(jm jn Hhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_CONFIGjp twinreg.HKEY_CURRENT_USER(jm jn Fhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_USERjp twinreg.HKEY_DYN_DATA(jm jn Bhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_DYN_DATAjp twinreg.HKEY_LOCAL_MACHINE(jm jn Ghttps://docs.python.org/3/library/winreg.html#winreg.HKEY_LOCAL_MACHINEjp twinreg.HKEY_PERFORMANCE_DATA(jm jn Jhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_PERFORMANCE_DATAjp twinreg.HKEY_USERS(jm jn ?https://docs.python.org/3/library/winreg.html#winreg.HKEY_USERSjp twinreg.KEY_ALL_ACCESS(jm jn Chttps://docs.python.org/3/library/winreg.html#winreg.KEY_ALL_ACCESSjp twinreg.KEY_CREATE_LINK(jm jn Dhttps://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_LINKjp twinreg.KEY_CREATE_SUB_KEY(jm jn Ghttps://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_SUB_KEYjp twinreg.KEY_ENUMERATE_SUB_KEYS(jm jn Khttps://docs.python.org/3/library/winreg.html#winreg.KEY_ENUMERATE_SUB_KEYSjp twinreg.KEY_EXECUTE(jm jn @https://docs.python.org/3/library/winreg.html#winreg.KEY_EXECUTEjp twinreg.KEY_NOTIFY(jm jn ?https://docs.python.org/3/library/winreg.html#winreg.KEY_NOTIFYjp twinreg.KEY_QUERY_VALUE(jm jn Dhttps://docs.python.org/3/library/winreg.html#winreg.KEY_QUERY_VALUEjp twinreg.KEY_READ(jm jn =https://docs.python.org/3/library/winreg.html#winreg.KEY_READjp twinreg.KEY_SET_VALUE(jm jn Bhttps://docs.python.org/3/library/winreg.html#winreg.KEY_SET_VALUEjp twinreg.KEY_WOW64_32KEY(jm jn Dhttps://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_32KEYjp twinreg.KEY_WOW64_64KEY(jm jn Dhttps://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_64KEYjp twinreg.KEY_WRITE(jm jn >https://docs.python.org/3/library/winreg.html#winreg.KEY_WRITEjp twinreg.REG_BINARY(jm jn ?https://docs.python.org/3/library/winreg.html#winreg.REG_BINARYjp twinreg.REG_DWORD(jm jn >https://docs.python.org/3/library/winreg.html#winreg.REG_DWORDjp twinreg.REG_DWORD_BIG_ENDIAN(jm jn Ihttps://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_BIG_ENDIANjp twinreg.REG_DWORD_LITTLE_ENDIAN(jm jn Lhttps://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_LITTLE_ENDIANjp twinreg.REG_EXPAND_SZ(jm jn Bhttps://docs.python.org/3/library/winreg.html#winreg.REG_EXPAND_SZjp t#winreg.REG_FULL_RESOURCE_DESCRIPTOR(jm jn Qhttps://docs.python.org/3/library/winreg.html#winreg.REG_FULL_RESOURCE_DESCRIPTORjp twinreg.REG_LINK(jm jn =https://docs.python.org/3/library/winreg.html#winreg.REG_LINKjp twinreg.REG_MULTI_SZ(jm jn Ahttps://docs.python.org/3/library/winreg.html#winreg.REG_MULTI_SZjp twinreg.REG_NONE(jm jn =https://docs.python.org/3/library/winreg.html#winreg.REG_NONEjp twinreg.REG_QWORD(jm jn >https://docs.python.org/3/library/winreg.html#winreg.REG_QWORDjp twinreg.REG_QWORD_LITTLE_ENDIAN(jm jn Lhttps://docs.python.org/3/library/winreg.html#winreg.REG_QWORD_LITTLE_ENDIANjp twinreg.REG_RESOURCE_LIST(jm jn Fhttps://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_LISTjp t%winreg.REG_RESOURCE_REQUIREMENTS_LIST(jm jn Shttps://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_REQUIREMENTS_LISTjp t winreg.REG_SZ(jm jn ;https://docs.python.org/3/library/winreg.html#winreg.REG_SZjp twinsound.MB_ICONASTERISK(jm jn Hhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONASTERISKjp twinsound.MB_ICONEXCLAMATION(jm jn Khttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONEXCLAMATIONjp twinsound.MB_ICONHAND(jm jn Dhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONHANDjp twinsound.MB_ICONQUESTION(jm jn Hhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONQUESTIONjp twinsound.MB_OK(jm jn >https://docs.python.org/3/library/winsound.html#winsound.MB_OKjp twinsound.SND_ALIAS(jm jn Bhttps://docs.python.org/3/library/winsound.html#winsound.SND_ALIASjp twinsound.SND_ASYNC(jm jn Bhttps://docs.python.org/3/library/winsound.html#winsound.SND_ASYNCjp twinsound.SND_FILENAME(jm jn Ehttps://docs.python.org/3/library/winsound.html#winsound.SND_FILENAMEjp twinsound.SND_LOOP(jm jn Ahttps://docs.python.org/3/library/winsound.html#winsound.SND_LOOPjp twinsound.SND_MEMORY(jm jn Chttps://docs.python.org/3/library/winsound.html#winsound.SND_MEMORYjp twinsound.SND_NODEFAULT(jm jn Fhttps://docs.python.org/3/library/winsound.html#winsound.SND_NODEFAULTjp twinsound.SND_NOSTOP(jm jn Chttps://docs.python.org/3/library/winsound.html#winsound.SND_NOSTOPjp twinsound.SND_NOWAIT(jm jn Chttps://docs.python.org/3/library/winsound.html#winsound.SND_NOWAITjp twinsound.SND_PURGE(jm jn Bhttps://docs.python.org/3/library/winsound.html#winsound.SND_PURGEjp twsgiref.types.WSGIApplication(jm jn Lhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.WSGIApplicationjp twsgiref.types.WSGIEnvironment(jm jn Lhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.WSGIEnvironmentjp txml.dom.EMPTY_NAMESPACE(jm jn Fhttps://docs.python.org/3/library/xml.dom.html#xml.dom.EMPTY_NAMESPACEjp txml.dom.XHTML_NAMESPACE(jm jn Fhttps://docs.python.org/3/library/xml.dom.html#xml.dom.XHTML_NAMESPACEjp txml.dom.XMLNS_NAMESPACE(jm jn Fhttps://docs.python.org/3/library/xml.dom.html#xml.dom.XMLNS_NAMESPACEjp txml.dom.XML_NAMESPACE(jm jn Dhttps://docs.python.org/3/library/xml.dom.html#xml.dom.XML_NAMESPACEjp txml.dom.pulldom.default_bufsize(jm jn Vhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.default_bufsizejp txml.parsers.expat.XMLParserType(jm jn Nhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.XMLParserTypejp t*xml.parsers.expat.errors.XML_ERROR_ABORTED(jm jn Yhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ABORTEDjp t=xml.parsers.expat.errors.XML_ERROR_AMPLIFICATION_LIMIT_BREACH(jm jn lhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_AMPLIFICATION_LIMIT_BREACHjp t/xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITY(jm jn ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITYjp t@xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF(jm jn ohttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REFjp t/xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REF(jm jn ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REFjp t4xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REF(jm jn chttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REFjp tCxml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING(jm jn rhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSINGjp t6xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTE(jm jn ehttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTEjp t8xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PE(jm jn ghttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PEjp t;xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLING(jm jn jhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLINGjp t;xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTD(jm jn jhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTDjp t+xml.parsers.expat.errors.XML_ERROR_FINISHED(jm jn Zhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FINISHEDjp t0xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PE(jm jn _https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PEjp t5xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODING(jm jn dhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODINGjp t3xml.parsers.expat.errors.XML_ERROR_INVALID_ARGUMENT(jm jn bhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INVALID_ARGUMENTjp t0xml.parsers.expat.errors.XML_ERROR_INVALID_TOKEN(jm jn _https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INVALID_TOKENjp t9xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENT(jm jn hhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENTjp t3xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PI(jm jn bhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PIjp t1xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONE(jm jn `https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONEjp t0xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDED(jm jn _https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDEDjp t,xml.parsers.expat.errors.XML_ERROR_NO_BUFFER(jm jn [https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_BUFFERjp t.xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTS(jm jn ]https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTSjp t,xml.parsers.expat.errors.XML_ERROR_NO_MEMORY(jm jn [https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_MEMORYjp t3xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REF(jm jn bhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REFjp t/xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHAR(jm jn ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHARjp t+xml.parsers.expat.errors.XML_ERROR_PUBLICID(jm jn Zhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PUBLICIDjp t7xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REF(jm jn fhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REFjp t9xml.parsers.expat.errors.XML_ERROR_RESERVED_NAMESPACE_URI(jm jn hhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RESERVED_NAMESPACE_URIjp t6xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XML(jm jn ehttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XMLjp t8xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XMLNS(jm jn ghttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XMLNSjp t,xml.parsers.expat.errors.XML_ERROR_SUSPENDED(jm jn [https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPENDEDjp t-xml.parsers.expat.errors.XML_ERROR_SUSPEND_PE(jm jn \https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPEND_PEjp t)xml.parsers.expat.errors.XML_ERROR_SYNTAX(jm jn Xhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SYNTAXjp t/xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCH(jm jn ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCHjp t,xml.parsers.expat.errors.XML_ERROR_TEXT_DECL(jm jn [https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TEXT_DECLjp t1xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIX(jm jn `https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIXjp t9xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTION(jm jn hhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTIONjp t1xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKEN(jm jn `https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKENjp t5xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIX(jm jn dhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIXjp t3xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITY(jm jn bhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITYjp t3xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATE(jm jn bhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATEjp t3xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODING(jm jn bhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODINGjp t+xml.parsers.expat.errors.XML_ERROR_XML_DECL(jm jn Zhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_XML_DECLjp txml.parsers.expat.errors.codes(jm jn Mhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.codesjp t!xml.parsers.expat.errors.messages(jm jn Phttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.messagesjp txml.sax.handler.all_features(jm jn Shttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_featuresjp txml.sax.handler.all_properties(jm jn Uhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_propertiesjp t$xml.sax.handler.feature_external_ges(jm jn [https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_gesjp t$xml.sax.handler.feature_external_pes(jm jn [https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_pesjp t*xml.sax.handler.feature_namespace_prefixes(jm jn ahttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespace_prefixesjp t"xml.sax.handler.feature_namespaces(jm jn Yhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespacesjp t(xml.sax.handler.feature_string_interning(jm jn _https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_string_interningjp t"xml.sax.handler.feature_validation(jm jn Yhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_validationjp t,xml.sax.handler.property_declaration_handler(jm jn chttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_declaration_handlerjp t!xml.sax.handler.property_dom_node(jm jn Xhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_dom_nodejp t(xml.sax.handler.property_lexical_handler(jm jn _https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_lexical_handlerjp t#xml.sax.handler.property_xml_string(jm jn Zhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_xml_stringjp tzipfile.Path.stem(jm jn @https://docs.python.org/3/library/zipfile.html#zipfile.Path.stemjp tzipfile.Path.suffix(jm jn Bhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.suffixjp tzipfile.Path.suffixes(jm jn Dhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.suffixesjp tzipfile.ZIP_BZIP2(jm jn @https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_BZIP2jp tzipfile.ZIP_DEFLATED(jm jn Chttps://docs.python.org/3/library/zipfile.html#zipfile.ZIP_DEFLATEDjp tzipfile.ZIP_LZMA(jm jn ?https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_LZMAjp tzipfile.ZIP_STORED(jm jn Ahttps://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STOREDjp tzlib.ZLIB_RUNTIME_VERSION(jm jn Ehttps://docs.python.org/3/library/zlib.html#zlib.ZLIB_RUNTIME_VERSIONjp tzlib.ZLIB_VERSION(jm jn =https://docs.python.org/3/library/zlib.html#zlib.ZLIB_VERSIONjp tzoneinfo.TZPATH(jm jn ?https://docs.python.org/3/library/zoneinfo.html#zoneinfo.TZPATHjp tu py:module}( __future__(jm jn Chttps://docs.python.org/3/library/__future__.html#module-__future__jp t__main__(jm jn ?https://docs.python.org/3/library/__main__.html#module-__main__jp t_thread(jm jn =https://docs.python.org/3/library/_thread.html#module-_threadjp tabc(jm jn 5https://docs.python.org/3/library/abc.html#module-abcjp taifc(jm jn 7https://docs.python.org/3/library/aifc.html#module-aifcjp targparse(jm jn ?https://docs.python.org/3/library/argparse.html#module-argparsejp tarray(jm jn 9https://docs.python.org/3/library/array.html#module-arrayjp tast(jm jn 5https://docs.python.org/3/library/ast.html#module-astjp tasynchat(jm jn ?https://docs.python.org/3/library/asynchat.html#module-asynchatjp tasyncio(jm jn =https://docs.python.org/3/library/asyncio.html#module-asynciojp tasyncore(jm jn ?https://docs.python.org/3/library/asyncore.html#module-asyncorejp tatexit(jm jn ;https://docs.python.org/3/library/atexit.html#module-atexitjp taudioop(jm jn =https://docs.python.org/3/library/audioop.html#module-audioopjp tbase64(jm jn ;https://docs.python.org/3/library/base64.html#module-base64jp tbdb(jm jn 5https://docs.python.org/3/library/bdb.html#module-bdbjp tbinascii(jm jn ?https://docs.python.org/3/library/binascii.html#module-binasciijp tbisect(jm jn ;https://docs.python.org/3/library/bisect.html#module-bisectjp tbuiltins(jm jn ?https://docs.python.org/3/library/builtins.html#module-builtinsjp tbz2(jm jn 5https://docs.python.org/3/library/bz2.html#module-bz2jp tcProfile(jm jn >https://docs.python.org/3/library/profile.html#module-cProfilejp tcalendar(jm jn ?https://docs.python.org/3/library/calendar.html#module-calendarjp tcgi(jm jn 5https://docs.python.org/3/library/cgi.html#module-cgijp tcgitb(jm jn 9https://docs.python.org/3/library/cgitb.html#module-cgitbjp tchunk(jm jn 9https://docs.python.org/3/library/chunk.html#module-chunkjp tclinic(jm jn 9https://docs.python.org/3/howto/clinic.html#module-clinicjp tcmath(jm jn 9https://docs.python.org/3/library/cmath.html#module-cmathjp tcmd(jm jn 5https://docs.python.org/3/library/cmd.html#module-cmdjp tcode(jm jn 7https://docs.python.org/3/library/code.html#module-codejp tcodecs(jm jn ;https://docs.python.org/3/library/codecs.html#module-codecsjp tcodeop(jm jn ;https://docs.python.org/3/library/codeop.html#module-codeopjp t collections(jm jn Ehttps://docs.python.org/3/library/collections.html#module-collectionsjp tcollections.abc(jm jn Mhttps://docs.python.org/3/library/collections.abc.html#module-collections.abcjp tcolorsys(jm jn ?https://docs.python.org/3/library/colorsys.html#module-colorsysjp t compileall(jm jn Chttps://docs.python.org/3/library/compileall.html#module-compilealljp tconcurrent.futures(jm jn Shttps://docs.python.org/3/library/concurrent.futures.html#module-concurrent.futuresjp t configparser(jm jn Ghttps://docs.python.org/3/library/configparser.html#module-configparserjp t contextlib(jm jn Chttps://docs.python.org/3/library/contextlib.html#module-contextlibjp t contextvars(jm jn Ehttps://docs.python.org/3/library/contextvars.html#module-contextvarsjp tcopy(jm jn 7https://docs.python.org/3/library/copy.html#module-copyjp tcopyreg(jm jn =https://docs.python.org/3/library/copyreg.html#module-copyregjp tcrypt(jm jn 9https://docs.python.org/3/library/crypt.html#module-cryptjp tcsv(jm jn 5https://docs.python.org/3/library/csv.html#module-csvjp tctypes(jm jn ;https://docs.python.org/3/library/ctypes.html#module-ctypesjp tcurses(jm jn ;https://docs.python.org/3/library/curses.html#module-cursesjp t curses.ascii(jm jn Ghttps://docs.python.org/3/library/curses.ascii.html#module-curses.asciijp t curses.panel(jm jn Ghttps://docs.python.org/3/library/curses.panel.html#module-curses.paneljp tcurses.textpad(jm jn Chttps://docs.python.org/3/library/curses.html#module-curses.textpadjp t dataclasses(jm jn Ehttps://docs.python.org/3/library/dataclasses.html#module-dataclassesjp tdatetime(jm jn ?https://docs.python.org/3/library/datetime.html#module-datetimejp tdbm(jm jn 5https://docs.python.org/3/library/dbm.html#module-dbmjp tdbm.dumb(jm jn :https://docs.python.org/3/library/dbm.html#module-dbm.dumbjp tdbm.gnu(jm jn 9https://docs.python.org/3/library/dbm.html#module-dbm.gnujp tdbm.ndbm(jm jn :https://docs.python.org/3/library/dbm.html#module-dbm.ndbmjp tdecimal(jm jn =https://docs.python.org/3/library/decimal.html#module-decimaljp tdifflib(jm jn =https://docs.python.org/3/library/difflib.html#module-difflibjp tdis(jm jn 5https://docs.python.org/3/library/dis.html#module-disjp t distutils(jm jn Ahttps://docs.python.org/3/library/distutils.html#module-distutilsjp tdistutils.archive_util(jm jn Mhttps://docs.python.org/3/distutils/apiref.html#module-distutils.archive_utiljp tdistutils.bcppcompiler(jm jn Mhttps://docs.python.org/3/distutils/apiref.html#module-distutils.bcppcompilerjp tdistutils.ccompiler(jm jn Jhttps://docs.python.org/3/distutils/apiref.html#module-distutils.ccompilerjp t distutils.cmd(jm jn Dhttps://docs.python.org/3/distutils/apiref.html#module-distutils.cmdjp tdistutils.command(jm jn Hhttps://docs.python.org/3/distutils/apiref.html#module-distutils.commandjp tdistutils.command.bdist(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdistjp tdistutils.command.bdist_dumb(jm jn Shttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_dumbjp t distutils.command.bdist_packager(jm jn Whttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_packagerjp tdistutils.command.bdist_rpm(jm jn Rhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.bdist_rpmjp tdistutils.command.build(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.buildjp tdistutils.command.build_clib(jm jn Shttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_clibjp tdistutils.command.build_ext(jm jn Rhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_extjp tdistutils.command.build_py(jm jn Qhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_pyjp tdistutils.command.build_scripts(jm jn Vhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.build_scriptsjp tdistutils.command.check(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.checkjp tdistutils.command.clean(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.cleanjp tdistutils.command.config(jm jn Ohttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.configjp tdistutils.command.install(jm jn Phttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.installjp tdistutils.command.install_data(jm jn Uhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_datajp t!distutils.command.install_headers(jm jn Xhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_headersjp tdistutils.command.install_lib(jm jn Thttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_libjp t!distutils.command.install_scripts(jm jn Xhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.install_scriptsjp tdistutils.command.register(jm jn Qhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.registerjp tdistutils.command.sdist(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#module-distutils.command.sdistjp tdistutils.core(jm jn Ehttps://docs.python.org/3/distutils/apiref.html#module-distutils.corejp tdistutils.cygwinccompiler(jm jn Phttps://docs.python.org/3/distutils/apiref.html#module-distutils.cygwinccompilerjp tdistutils.debug(jm jn Fhttps://docs.python.org/3/distutils/apiref.html#module-distutils.debugjp tdistutils.dep_util(jm jn Ihttps://docs.python.org/3/distutils/apiref.html#module-distutils.dep_utiljp tdistutils.dir_util(jm jn Ihttps://docs.python.org/3/distutils/apiref.html#module-distutils.dir_utiljp tdistutils.dist(jm jn Ehttps://docs.python.org/3/distutils/apiref.html#module-distutils.distjp tdistutils.errors(jm jn Ghttps://docs.python.org/3/distutils/apiref.html#module-distutils.errorsjp tdistutils.extension(jm jn Jhttps://docs.python.org/3/distutils/apiref.html#module-distutils.extensionjp tdistutils.fancy_getopt(jm jn Mhttps://docs.python.org/3/distutils/apiref.html#module-distutils.fancy_getoptjp tdistutils.file_util(jm jn Jhttps://docs.python.org/3/distutils/apiref.html#module-distutils.file_utiljp tdistutils.filelist(jm jn Ihttps://docs.python.org/3/distutils/apiref.html#module-distutils.filelistjp t distutils.log(jm jn Dhttps://docs.python.org/3/distutils/apiref.html#module-distutils.logjp tdistutils.msvccompiler(jm jn Mhttps://docs.python.org/3/distutils/apiref.html#module-distutils.msvccompilerjp tdistutils.spawn(jm jn Fhttps://docs.python.org/3/distutils/apiref.html#module-distutils.spawnjp tdistutils.sysconfig(jm jn Jhttps://docs.python.org/3/distutils/apiref.html#module-distutils.sysconfigjp tdistutils.text_file(jm jn Jhttps://docs.python.org/3/distutils/apiref.html#module-distutils.text_filejp tdistutils.unixccompiler(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#module-distutils.unixccompilerjp tdistutils.util(jm jn Ehttps://docs.python.org/3/distutils/apiref.html#module-distutils.utiljp tdistutils.version(jm jn Hhttps://docs.python.org/3/distutils/apiref.html#module-distutils.versionjp tdoctest(jm jn =https://docs.python.org/3/library/doctest.html#module-doctestjp temail(jm jn 9https://docs.python.org/3/library/email.html#module-emailjp t email.charset(jm jn Ihttps://docs.python.org/3/library/email.charset.html#module-email.charsetjp temail.contentmanager(jm jn Whttps://docs.python.org/3/library/email.contentmanager.html#module-email.contentmanagerjp temail.encoders(jm jn Khttps://docs.python.org/3/library/email.encoders.html#module-email.encodersjp t email.errors(jm jn Ghttps://docs.python.org/3/library/email.errors.html#module-email.errorsjp temail.generator(jm jn Mhttps://docs.python.org/3/library/email.generator.html#module-email.generatorjp t email.header(jm jn Ghttps://docs.python.org/3/library/email.header.html#module-email.headerjp temail.headerregistry(jm jn Whttps://docs.python.org/3/library/email.headerregistry.html#module-email.headerregistryjp temail.iterators(jm jn Mhttps://docs.python.org/3/library/email.iterators.html#module-email.iteratorsjp t email.message(jm jn Ihttps://docs.python.org/3/library/email.message.html#module-email.messagejp t email.mime(jm jn Chttps://docs.python.org/3/library/email.mime.html#module-email.mimejp t email.parser(jm jn Ghttps://docs.python.org/3/library/email.parser.html#module-email.parserjp t email.policy(jm jn Ghttps://docs.python.org/3/library/email.policy.html#module-email.policyjp t email.utils(jm jn Ehttps://docs.python.org/3/library/email.utils.html#module-email.utilsjp tencodings.idna(jm jn Chttps://docs.python.org/3/library/codecs.html#module-encodings.idnajp tencodings.mbcs(jm jn Chttps://docs.python.org/3/library/codecs.html#module-encodings.mbcsjp tencodings.utf_8_sig(jm jn Hhttps://docs.python.org/3/library/codecs.html#module-encodings.utf_8_sigjp t ensurepip(jm jn Ahttps://docs.python.org/3/library/ensurepip.html#module-ensurepipjp tenum(jm jn 7https://docs.python.org/3/library/enum.html#module-enumjp terrno(jm jn 9https://docs.python.org/3/library/errno.html#module-errnojp t faulthandler(jm jn Ghttps://docs.python.org/3/library/faulthandler.html#module-faulthandlerjp tfcntl(jm jn 9https://docs.python.org/3/library/fcntl.html#module-fcntljp tfilecmp(jm jn =https://docs.python.org/3/library/filecmp.html#module-filecmpjp t fileinput(jm jn Ahttps://docs.python.org/3/library/fileinput.html#module-fileinputjp tfnmatch(jm jn =https://docs.python.org/3/library/fnmatch.html#module-fnmatchjp t fractions(jm jn Ahttps://docs.python.org/3/library/fractions.html#module-fractionsjp tftplib(jm jn ;https://docs.python.org/3/library/ftplib.html#module-ftplibjp t functools(jm jn Ahttps://docs.python.org/3/library/functools.html#module-functoolsjp tgc(jm jn 3https://docs.python.org/3/library/gc.html#module-gcjp tgetopt(jm jn ;https://docs.python.org/3/library/getopt.html#module-getoptjp tgetpass(jm jn =https://docs.python.org/3/library/getpass.html#module-getpassjp tgettext(jm jn =https://docs.python.org/3/library/gettext.html#module-gettextjp tglob(jm jn 7https://docs.python.org/3/library/glob.html#module-globjp tgraphlib(jm jn ?https://docs.python.org/3/library/graphlib.html#module-graphlibjp tgrp(jm jn 5https://docs.python.org/3/library/grp.html#module-grpjp tgzip(jm jn 7https://docs.python.org/3/library/gzip.html#module-gzipjp thashlib(jm jn =https://docs.python.org/3/library/hashlib.html#module-hashlibjp theapq(jm jn 9https://docs.python.org/3/library/heapq.html#module-heapqjp thmac(jm jn 7https://docs.python.org/3/library/hmac.html#module-hmacjp thtml(jm jn 7https://docs.python.org/3/library/html.html#module-htmljp t html.entities(jm jn Ihttps://docs.python.org/3/library/html.entities.html#module-html.entitiesjp t html.parser(jm jn Ehttps://docs.python.org/3/library/html.parser.html#module-html.parserjp thttp(jm jn 7https://docs.python.org/3/library/http.html#module-httpjp t http.client(jm jn Ehttps://docs.python.org/3/library/http.client.html#module-http.clientjp thttp.cookiejar(jm jn Khttps://docs.python.org/3/library/http.cookiejar.html#module-http.cookiejarjp t http.cookies(jm jn Ghttps://docs.python.org/3/library/http.cookies.html#module-http.cookiesjp t http.server(jm jn Ehttps://docs.python.org/3/library/http.server.html#module-http.serverjp tidlelib(jm jn :https://docs.python.org/3/library/idle.html#module-idlelibjp timaplib(jm jn =https://docs.python.org/3/library/imaplib.html#module-imaplibjp timghdr(jm jn ;https://docs.python.org/3/library/imghdr.html#module-imghdrjp timp(jm jn 5https://docs.python.org/3/library/imp.html#module-impjp t importlib(jm jn Ahttps://docs.python.org/3/library/importlib.html#module-importlibjp t importlib.abc(jm jn Ehttps://docs.python.org/3/library/importlib.html#module-importlib.abcjp timportlib.machinery(jm jn Khttps://docs.python.org/3/library/importlib.html#module-importlib.machineryjp timportlib.metadata(jm jn Shttps://docs.python.org/3/library/importlib.metadata.html#module-importlib.metadatajp timportlib.resources(jm jn Uhttps://docs.python.org/3/library/importlib.resources.html#module-importlib.resourcesjp timportlib.resources.abc(jm jn ]https://docs.python.org/3/library/importlib.resources.abc.html#module-importlib.resources.abcjp timportlib.util(jm jn Fhttps://docs.python.org/3/library/importlib.html#module-importlib.utiljp tinspect(jm jn =https://docs.python.org/3/library/inspect.html#module-inspectjp tio(jm jn 3https://docs.python.org/3/library/io.html#module-iojp t ipaddress(jm jn Ahttps://docs.python.org/3/library/ipaddress.html#module-ipaddressjp t itertools(jm jn Ahttps://docs.python.org/3/library/itertools.html#module-itertoolsjp tjson(jm jn 7https://docs.python.org/3/library/json.html#module-jsonjp t json.tool(jm jn https://docs.python.org/3/library/abc.html#abc.get_cache_tokenjp tabc.update_abstractmethods(jm jn Ehttps://docs.python.org/3/library/abc.html#abc.update_abstractmethodsjp tabs(jm jn 4https://docs.python.org/3/library/functions.html#absjp t aifc.open(jm jn 5https://docs.python.org/3/library/aifc.html#aifc.openjp taiter(jm jn 6https://docs.python.org/3/library/functions.html#aiterjp tall(jm jn 4https://docs.python.org/3/library/functions.html#alljp tanext(jm jn 6https://docs.python.org/3/library/functions.html#anextjp tany(jm jn 4https://docs.python.org/3/library/functions.html#anyjp tascii(jm jn 6https://docs.python.org/3/library/functions.html#asciijp tast.copy_location(jm jn https://docs.python.org/3/library/audioop.html#audioop.findfitjp taudioop.findmax(jm jn >https://docs.python.org/3/library/audioop.html#audioop.findmaxjp taudioop.getsample(jm jn @https://docs.python.org/3/library/audioop.html#audioop.getsamplejp taudioop.lin2adpcm(jm jn @https://docs.python.org/3/library/audioop.html#audioop.lin2adpcmjp taudioop.lin2alaw(jm jn ?https://docs.python.org/3/library/audioop.html#audioop.lin2alawjp taudioop.lin2lin(jm jn >https://docs.python.org/3/library/audioop.html#audioop.lin2linjp taudioop.lin2ulaw(jm jn ?https://docs.python.org/3/library/audioop.html#audioop.lin2ulawjp t audioop.max(jm jn :https://docs.python.org/3/library/audioop.html#audioop.maxjp t audioop.maxpp(jm jn https://docs.python.org/3/library/audioop.html#audioop.reversejp t audioop.rms(jm jn :https://docs.python.org/3/library/audioop.html#audioop.rmsjp taudioop.tomono(jm jn =https://docs.python.org/3/library/audioop.html#audioop.tomonojp taudioop.tostereo(jm jn ?https://docs.python.org/3/library/audioop.html#audioop.tostereojp taudioop.ulaw2lin(jm jn ?https://docs.python.org/3/library/audioop.html#audioop.ulaw2linjp tbase64.a85decode(jm jn >https://docs.python.org/3/library/base64.html#base64.a85decodejp tbase64.a85encode(jm jn >https://docs.python.org/3/library/base64.html#base64.a85encodejp tbase64.b16decode(jm jn >https://docs.python.org/3/library/base64.html#base64.b16decodejp tbase64.b16encode(jm jn >https://docs.python.org/3/library/base64.html#base64.b16encodejp tbase64.b32decode(jm jn >https://docs.python.org/3/library/base64.html#base64.b32decodejp tbase64.b32encode(jm jn >https://docs.python.org/3/library/base64.html#base64.b32encodejp tbase64.b32hexdecode(jm jn Ahttps://docs.python.org/3/library/base64.html#base64.b32hexdecodejp tbase64.b32hexencode(jm jn Ahttps://docs.python.org/3/library/base64.html#base64.b32hexencodejp tbase64.b64decode(jm jn >https://docs.python.org/3/library/base64.html#base64.b64decodejp tbase64.b64encode(jm jn >https://docs.python.org/3/library/base64.html#base64.b64encodejp tbase64.b85decode(jm jn >https://docs.python.org/3/library/base64.html#base64.b85decodejp tbase64.b85encode(jm jn >https://docs.python.org/3/library/base64.html#base64.b85encodejp t base64.decode(jm jn ;https://docs.python.org/3/library/base64.html#base64.decodejp tbase64.decodebytes(jm jn @https://docs.python.org/3/library/base64.html#base64.decodebytesjp t base64.encode(jm jn ;https://docs.python.org/3/library/base64.html#base64.encodejp tbase64.encodebytes(jm jn @https://docs.python.org/3/library/base64.html#base64.encodebytesjp tbase64.standard_b64decode(jm jn Ghttps://docs.python.org/3/library/base64.html#base64.standard_b64decodejp tbase64.standard_b64encode(jm jn Ghttps://docs.python.org/3/library/base64.html#base64.standard_b64encodejp tbase64.urlsafe_b64decode(jm jn Fhttps://docs.python.org/3/library/base64.html#base64.urlsafe_b64decodejp tbase64.urlsafe_b64encode(jm jn Fhttps://docs.python.org/3/library/base64.html#base64.urlsafe_b64encodejp tbdb.checkfuncname(jm jn https://docs.python.org/3/library/binascii.html#binascii.crc32jp tbinascii.crc_hqx(jm jn @https://docs.python.org/3/library/binascii.html#binascii.crc_hqxjp tbinascii.hexlify(jm jn @https://docs.python.org/3/library/binascii.html#binascii.hexlifyjp tbinascii.unhexlify(jm jn Bhttps://docs.python.org/3/library/binascii.html#binascii.unhexlifyjp t bisect.bisect(jm jn ;https://docs.python.org/3/library/bisect.html#bisect.bisectjp tbisect.bisect_left(jm jn @https://docs.python.org/3/library/bisect.html#bisect.bisect_leftjp tbisect.bisect_right(jm jn Ahttps://docs.python.org/3/library/bisect.html#bisect.bisect_rightjp t bisect.insort(jm jn ;https://docs.python.org/3/library/bisect.html#bisect.insortjp tbisect.insort_left(jm jn @https://docs.python.org/3/library/bisect.html#bisect.insort_leftjp tbisect.insort_right(jm jn Ahttps://docs.python.org/3/library/bisect.html#bisect.insort_rightjp t breakpoint(jm jn ;https://docs.python.org/3/library/functions.html#breakpointjp t bz2.compress(jm jn 7https://docs.python.org/3/library/bz2.html#bz2.compressjp tbz2.decompress(jm jn 9https://docs.python.org/3/library/bz2.html#bz2.decompressjp tbz2.open(jm jn 3https://docs.python.org/3/library/bz2.html#bz2.openjp tcalendar.calendar(jm jn Ahttps://docs.python.org/3/library/calendar.html#calendar.calendarjp tcalendar.firstweekday(jm jn Ehttps://docs.python.org/3/library/calendar.html#calendar.firstweekdayjp tcalendar.isleap(jm jn ?https://docs.python.org/3/library/calendar.html#calendar.isleapjp tcalendar.leapdays(jm jn Ahttps://docs.python.org/3/library/calendar.html#calendar.leapdaysjp tcalendar.month(jm jn >https://docs.python.org/3/library/calendar.html#calendar.monthjp tcalendar.monthcalendar(jm jn Fhttps://docs.python.org/3/library/calendar.html#calendar.monthcalendarjp tcalendar.monthrange(jm jn Chttps://docs.python.org/3/library/calendar.html#calendar.monthrangejp tcalendar.prcal(jm jn >https://docs.python.org/3/library/calendar.html#calendar.prcaljp tcalendar.prmonth(jm jn @https://docs.python.org/3/library/calendar.html#calendar.prmonthjp tcalendar.setfirstweekday(jm jn Hhttps://docs.python.org/3/library/calendar.html#calendar.setfirstweekdayjp tcalendar.timegm(jm jn ?https://docs.python.org/3/library/calendar.html#calendar.timegmjp tcalendar.weekday(jm jn @https://docs.python.org/3/library/calendar.html#calendar.weekdayjp tcalendar.weekheader(jm jn Chttps://docs.python.org/3/library/calendar.html#calendar.weekheaderjp tcallable(jm jn 9https://docs.python.org/3/library/functions.html#callablejp t cgi.parse(jm jn 4https://docs.python.org/3/library/cgi.html#cgi.parsejp tcgi.parse_header(jm jn ;https://docs.python.org/3/library/cgi.html#cgi.parse_headerjp tcgi.parse_multipart(jm jn >https://docs.python.org/3/library/cgi.html#cgi.parse_multipartjp tcgi.print_directory(jm jn >https://docs.python.org/3/library/cgi.html#cgi.print_directoryjp tcgi.print_environ(jm jn https://docs.python.org/3/library/codecs.html#codecs.getreaderjp tcodecs.getwriter(jm jn >https://docs.python.org/3/library/codecs.html#codecs.getwriterjp tcodecs.ignore_errors(jm jn Bhttps://docs.python.org/3/library/codecs.html#codecs.ignore_errorsjp tcodecs.iterdecode(jm jn ?https://docs.python.org/3/library/codecs.html#codecs.iterdecodejp tcodecs.iterencode(jm jn ?https://docs.python.org/3/library/codecs.html#codecs.iterencodejp t codecs.lookup(jm jn ;https://docs.python.org/3/library/codecs.html#codecs.lookupjp tcodecs.lookup_error(jm jn Ahttps://docs.python.org/3/library/codecs.html#codecs.lookup_errorjp tcodecs.namereplace_errors(jm jn Ghttps://docs.python.org/3/library/codecs.html#codecs.namereplace_errorsjp t codecs.open(jm jn 9https://docs.python.org/3/library/codecs.html#codecs.openjp tcodecs.register(jm jn =https://docs.python.org/3/library/codecs.html#codecs.registerjp tcodecs.register_error(jm jn Chttps://docs.python.org/3/library/codecs.html#codecs.register_errorjp tcodecs.replace_errors(jm jn Chttps://docs.python.org/3/library/codecs.html#codecs.replace_errorsjp tcodecs.strict_errors(jm jn Bhttps://docs.python.org/3/library/codecs.html#codecs.strict_errorsjp tcodecs.unregister(jm jn ?https://docs.python.org/3/library/codecs.html#codecs.unregisterjp tcodecs.xmlcharrefreplace_errors(jm jn Mhttps://docs.python.org/3/library/codecs.html#codecs.xmlcharrefreplace_errorsjp tcodeop.compile_command(jm jn Dhttps://docs.python.org/3/library/codeop.html#codeop.compile_commandjp tcollections.namedtuple(jm jn Ihttps://docs.python.org/3/library/collections.html#collections.namedtuplejp tcolorsys.hls_to_rgb(jm jn Chttps://docs.python.org/3/library/colorsys.html#colorsys.hls_to_rgbjp tcolorsys.hsv_to_rgb(jm jn Chttps://docs.python.org/3/library/colorsys.html#colorsys.hsv_to_rgbjp tcolorsys.rgb_to_hls(jm jn Chttps://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hlsjp tcolorsys.rgb_to_hsv(jm jn Chttps://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hsvjp tcolorsys.rgb_to_yiq(jm jn Chttps://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_yiqjp tcolorsys.yiq_to_rgb(jm jn Chttps://docs.python.org/3/library/colorsys.html#colorsys.yiq_to_rgbjp tcompile(jm jn 8https://docs.python.org/3/library/functions.html#compilejp tcompileall.compile_dir(jm jn Hhttps://docs.python.org/3/library/compileall.html#compileall.compile_dirjp tcompileall.compile_file(jm jn Ihttps://docs.python.org/3/library/compileall.html#compileall.compile_filejp tcompileall.compile_path(jm jn Ihttps://docs.python.org/3/library/compileall.html#compileall.compile_pathjp tconcurrent.futures.as_completed(jm jn Yhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.as_completedjp tconcurrent.futures.wait(jm jn Qhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.waitjp tcontextlib.aclosing(jm jn Ehttps://docs.python.org/3/library/contextlib.html#contextlib.aclosingjp tcontextlib.asynccontextmanager(jm jn Phttps://docs.python.org/3/library/contextlib.html#contextlib.asynccontextmanagerjp tcontextlib.chdir(jm jn Bhttps://docs.python.org/3/library/contextlib.html#contextlib.chdirjp tcontextlib.closing(jm jn Dhttps://docs.python.org/3/library/contextlib.html#contextlib.closingjp tcontextlib.contextmanager(jm jn Khttps://docs.python.org/3/library/contextlib.html#contextlib.contextmanagerjp tcontextlib.nullcontext(jm jn Hhttps://docs.python.org/3/library/contextlib.html#contextlib.nullcontextjp tcontextlib.redirect_stderr(jm jn Lhttps://docs.python.org/3/library/contextlib.html#contextlib.redirect_stderrjp tcontextlib.redirect_stdout(jm jn Lhttps://docs.python.org/3/library/contextlib.html#contextlib.redirect_stdoutjp tcontextlib.suppress(jm jn Ehttps://docs.python.org/3/library/contextlib.html#contextlib.suppressjp tcontextvars.copy_context(jm jn Khttps://docs.python.org/3/library/contextvars.html#contextvars.copy_contextjp t copy.copy(jm jn 5https://docs.python.org/3/library/copy.html#copy.copyjp t copy.deepcopy(jm jn 9https://docs.python.org/3/library/copy.html#copy.deepcopyjp tcopyreg.constructor(jm jn Bhttps://docs.python.org/3/library/copyreg.html#copyreg.constructorjp tcopyreg.pickle(jm jn =https://docs.python.org/3/library/copyreg.html#copyreg.picklejp tcreate_shortcut(jm jn Bhttps://docs.python.org/3/distutils/builtdist.html#create_shortcutjp t crypt.crypt(jm jn 8https://docs.python.org/3/library/crypt.html#crypt.cryptjp t crypt.mksalt(jm jn 9https://docs.python.org/3/library/crypt.html#crypt.mksaltjp tcsv.field_size_limit(jm jn ?https://docs.python.org/3/library/csv.html#csv.field_size_limitjp tcsv.get_dialect(jm jn :https://docs.python.org/3/library/csv.html#csv.get_dialectjp tcsv.list_dialects(jm jn https://docs.python.org/3/library/ctypes.html#ctypes.CFUNCTYPEjp tctypes.DllCanUnloadNow(jm jn Dhttps://docs.python.org/3/library/ctypes.html#ctypes.DllCanUnloadNowjp tctypes.DllGetClassObject(jm jn Fhttps://docs.python.org/3/library/ctypes.html#ctypes.DllGetClassObjectjp tctypes.FormatError(jm jn @https://docs.python.org/3/library/ctypes.html#ctypes.FormatErrorjp tctypes.GetLastError(jm jn Ahttps://docs.python.org/3/library/ctypes.html#ctypes.GetLastErrorjp tctypes.POINTER(jm jn https://docs.python.org/3/library/ctypes.html#ctypes.addressofjp tctypes.alignment(jm jn >https://docs.python.org/3/library/ctypes.html#ctypes.alignmentjp t ctypes.byref(jm jn :https://docs.python.org/3/library/ctypes.html#ctypes.byrefjp t ctypes.cast(jm jn 9https://docs.python.org/3/library/ctypes.html#ctypes.castjp tctypes.create_string_buffer(jm jn Ihttps://docs.python.org/3/library/ctypes.html#ctypes.create_string_bufferjp tctypes.create_unicode_buffer(jm jn Jhttps://docs.python.org/3/library/ctypes.html#ctypes.create_unicode_bufferjp tctypes.get_errno(jm jn >https://docs.python.org/3/library/ctypes.html#ctypes.get_errnojp tctypes.get_last_error(jm jn Chttps://docs.python.org/3/library/ctypes.html#ctypes.get_last_errorjp tctypes.memmove(jm jn https://docs.python.org/3/library/ctypes.html#ctypes.set_errnojp tctypes.set_last_error(jm jn Chttps://docs.python.org/3/library/ctypes.html#ctypes.set_last_errorjp t ctypes.sizeof(jm jn ;https://docs.python.org/3/library/ctypes.html#ctypes.sizeofjp tctypes.string_at(jm jn >https://docs.python.org/3/library/ctypes.html#ctypes.string_atjp tctypes.util.find_library(jm jn Fhttps://docs.python.org/3/library/ctypes.html#ctypes.util.find_libraryjp tctypes.util.find_msvcrt(jm jn Ehttps://docs.python.org/3/library/ctypes.html#ctypes.util.find_msvcrtjp tctypes.wstring_at(jm jn ?https://docs.python.org/3/library/ctypes.html#ctypes.wstring_atjp tcurses.ascii.alt(jm jn Dhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.altjp tcurses.ascii.ascii(jm jn Fhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.asciijp tcurses.ascii.ctrl(jm jn Ehttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ctrljp tcurses.ascii.isalnum(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalnumjp tcurses.ascii.isalpha(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalphajp tcurses.ascii.isascii(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isasciijp tcurses.ascii.isblank(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isblankjp tcurses.ascii.iscntrl(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.iscntrljp tcurses.ascii.isctrl(jm jn Ghttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isctrljp tcurses.ascii.isdigit(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isdigitjp tcurses.ascii.isgraph(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isgraphjp tcurses.ascii.islower(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.islowerjp tcurses.ascii.ismeta(jm jn Ghttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ismetajp tcurses.ascii.isprint(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isprintjp tcurses.ascii.ispunct(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ispunctjp tcurses.ascii.isspace(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isspacejp tcurses.ascii.isupper(jm jn Hhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isupperjp tcurses.ascii.isxdigit(jm jn Ihttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isxdigitjp tcurses.ascii.unctrl(jm jn Ghttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.unctrljp tcurses.baudrate(jm jn =https://docs.python.org/3/library/curses.html#curses.baudratejp t curses.beep(jm jn 9https://docs.python.org/3/library/curses.html#curses.beepjp tcurses.can_change_color(jm jn Ehttps://docs.python.org/3/library/curses.html#curses.can_change_colorjp t curses.cbreak(jm jn ;https://docs.python.org/3/library/curses.html#curses.cbreakjp tcurses.color_content(jm jn Bhttps://docs.python.org/3/library/curses.html#curses.color_contentjp tcurses.color_pair(jm jn ?https://docs.python.org/3/library/curses.html#curses.color_pairjp tcurses.curs_set(jm jn =https://docs.python.org/3/library/curses.html#curses.curs_setjp tcurses.def_prog_mode(jm jn Bhttps://docs.python.org/3/library/curses.html#curses.def_prog_modejp tcurses.def_shell_mode(jm jn Chttps://docs.python.org/3/library/curses.html#curses.def_shell_modejp tcurses.delay_output(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.delay_outputjp tcurses.doupdate(jm jn =https://docs.python.org/3/library/curses.html#curses.doupdatejp t curses.echo(jm jn 9https://docs.python.org/3/library/curses.html#curses.echojp t curses.endwin(jm jn ;https://docs.python.org/3/library/curses.html#curses.endwinjp tcurses.erasechar(jm jn >https://docs.python.org/3/library/curses.html#curses.erasecharjp t curses.filter(jm jn ;https://docs.python.org/3/library/curses.html#curses.filterjp t curses.flash(jm jn :https://docs.python.org/3/library/curses.html#curses.flashjp tcurses.flushinp(jm jn =https://docs.python.org/3/library/curses.html#curses.flushinpjp tcurses.get_escdelay(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.get_escdelayjp tcurses.get_tabsize(jm jn @https://docs.python.org/3/library/curses.html#curses.get_tabsizejp tcurses.getmouse(jm jn =https://docs.python.org/3/library/curses.html#curses.getmousejp t curses.getsyx(jm jn ;https://docs.python.org/3/library/curses.html#curses.getsyxjp t curses.getwin(jm jn ;https://docs.python.org/3/library/curses.html#curses.getwinjp tcurses.halfdelay(jm jn >https://docs.python.org/3/library/curses.html#curses.halfdelayjp tcurses.has_colors(jm jn ?https://docs.python.org/3/library/curses.html#curses.has_colorsjp t!curses.has_extended_color_support(jm jn Ohttps://docs.python.org/3/library/curses.html#curses.has_extended_color_supportjp t curses.has_ic(jm jn ;https://docs.python.org/3/library/curses.html#curses.has_icjp t curses.has_il(jm jn ;https://docs.python.org/3/library/curses.html#curses.has_iljp tcurses.has_key(jm jn https://docs.python.org/3/library/curses.html#curses.init_pairjp tcurses.initscr(jm jn https://docs.python.org/3/library/curses.html#curses.mousemaskjp t curses.napms(jm jn :https://docs.python.org/3/library/curses.html#curses.napmsjp t curses.newpad(jm jn ;https://docs.python.org/3/library/curses.html#curses.newpadjp t curses.newwin(jm jn ;https://docs.python.org/3/library/curses.html#curses.newwinjp t curses.nl(jm jn 7https://docs.python.org/3/library/curses.html#curses.nljp tcurses.nocbreak(jm jn =https://docs.python.org/3/library/curses.html#curses.nocbreakjp t curses.noecho(jm jn ;https://docs.python.org/3/library/curses.html#curses.noechojp t curses.nonl(jm jn 9https://docs.python.org/3/library/curses.html#curses.nonljp tcurses.noqiflush(jm jn >https://docs.python.org/3/library/curses.html#curses.noqiflushjp t curses.noraw(jm jn :https://docs.python.org/3/library/curses.html#curses.norawjp tcurses.pair_content(jm jn Ahttps://docs.python.org/3/library/curses.html#curses.pair_contentjp tcurses.pair_number(jm jn @https://docs.python.org/3/library/curses.html#curses.pair_numberjp tcurses.panel.bottom_panel(jm jn Mhttps://docs.python.org/3/library/curses.panel.html#curses.panel.bottom_paneljp tcurses.panel.new_panel(jm jn Jhttps://docs.python.org/3/library/curses.panel.html#curses.panel.new_paneljp tcurses.panel.top_panel(jm jn Jhttps://docs.python.org/3/library/curses.panel.html#curses.panel.top_paneljp tcurses.panel.update_panels(jm jn Nhttps://docs.python.org/3/library/curses.panel.html#curses.panel.update_panelsjp t curses.putp(jm jn 9https://docs.python.org/3/library/curses.html#curses.putpjp tcurses.qiflush(jm jn https://docs.python.org/3/library/curses.html#curses.setuptermjp tcurses.start_color(jm jn @https://docs.python.org/3/library/curses.html#curses.start_colorjp tcurses.termattrs(jm jn >https://docs.python.org/3/library/curses.html#curses.termattrsjp tcurses.termname(jm jn =https://docs.python.org/3/library/curses.html#curses.termnamejp tcurses.textpad.rectangle(jm jn Fhttps://docs.python.org/3/library/curses.html#curses.textpad.rectanglejp tcurses.tigetflag(jm jn >https://docs.python.org/3/library/curses.html#curses.tigetflagjp tcurses.tigetnum(jm jn =https://docs.python.org/3/library/curses.html#curses.tigetnumjp tcurses.tigetstr(jm jn =https://docs.python.org/3/library/curses.html#curses.tigetstrjp t curses.tparm(jm jn :https://docs.python.org/3/library/curses.html#curses.tparmjp tcurses.typeahead(jm jn >https://docs.python.org/3/library/curses.html#curses.typeaheadjp t curses.unctrl(jm jn ;https://docs.python.org/3/library/curses.html#curses.unctrljp tcurses.unget_wch(jm jn >https://docs.python.org/3/library/curses.html#curses.unget_wchjp tcurses.ungetch(jm jn https://docs.python.org/3/library/difflib.html#difflib.restorejp tdifflib.unified_diff(jm jn Chttps://docs.python.org/3/library/difflib.html#difflib.unified_diffjp tdir(jm jn 4https://docs.python.org/3/library/functions.html#dirjp tdirectory_created(jm jn Dhttps://docs.python.org/3/distutils/builtdist.html#directory_createdjp t dis.code_info(jm jn 8https://docs.python.org/3/library/dis.html#dis.code_infojp tdis.dis(jm jn 2https://docs.python.org/3/library/dis.html#dis.disjp tdis.disassemble(jm jn :https://docs.python.org/3/library/dis.html#dis.disassemblejp t dis.disco(jm jn 4https://docs.python.org/3/library/dis.html#dis.discojp t dis.distb(jm jn 4https://docs.python.org/3/library/dis.html#dis.distbjp tdis.findlabels(jm jn 9https://docs.python.org/3/library/dis.html#dis.findlabelsjp tdis.findlinestarts(jm jn =https://docs.python.org/3/library/dis.html#dis.findlinestartsjp tdis.get_instructions(jm jn ?https://docs.python.org/3/library/dis.html#dis.get_instructionsjp t dis.show_code(jm jn 8https://docs.python.org/3/library/dis.html#dis.show_codejp tdis.stack_effect(jm jn ;https://docs.python.org/3/library/dis.html#dis.stack_effectjp t#distutils.archive_util.make_archive(jm jn Shttps://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_archivejp t#distutils.archive_util.make_tarball(jm jn Shttps://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_tarballjp t#distutils.archive_util.make_zipfile(jm jn Shttps://docs.python.org/3/distutils/apiref.html#distutils.archive_util.make_zipfilejp t#distutils.ccompiler.gen_lib_options(jm jn Shttps://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.gen_lib_optionsjp t*distutils.ccompiler.gen_preprocess_options(jm jn Zhttps://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.gen_preprocess_optionsjp t(distutils.ccompiler.get_default_compiler(jm jn Xhttps://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.get_default_compilerjp t distutils.ccompiler.new_compiler(jm jn Phttps://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.new_compilerjp t"distutils.ccompiler.show_compilers(jm jn Rhttps://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.show_compilersjp tdistutils.core.run_setup(jm jn Hhttps://docs.python.org/3/distutils/apiref.html#distutils.core.run_setupjp tdistutils.core.setup(jm jn Dhttps://docs.python.org/3/distutils/apiref.html#distutils.core.setupjp tdistutils.dep_util.newer(jm jn Hhttps://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newerjp tdistutils.dep_util.newer_group(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newer_groupjp t!distutils.dep_util.newer_pairwise(jm jn Qhttps://docs.python.org/3/distutils/apiref.html#distutils.dep_util.newer_pairwisejp tdistutils.dir_util.copy_tree(jm jn Lhttps://docs.python.org/3/distutils/apiref.html#distutils.dir_util.copy_treejp tdistutils.dir_util.create_tree(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#distutils.dir_util.create_treejp tdistutils.dir_util.mkpath(jm jn Ihttps://docs.python.org/3/distutils/apiref.html#distutils.dir_util.mkpathjp tdistutils.dir_util.remove_tree(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#distutils.dir_util.remove_treejp t#distutils.fancy_getopt.fancy_getopt(jm jn Shttps://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.fancy_getoptjp t distutils.fancy_getopt.wrap_text(jm jn Phttps://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.wrap_textjp tdistutils.file_util.copy_file(jm jn Mhttps://docs.python.org/3/distutils/apiref.html#distutils.file_util.copy_filejp tdistutils.file_util.move_file(jm jn Mhttps://docs.python.org/3/distutils/apiref.html#distutils.file_util.move_filejp tdistutils.file_util.write_file(jm jn Nhttps://docs.python.org/3/distutils/apiref.html#distutils.file_util.write_filejp t&distutils.sysconfig.customize_compiler(jm jn Vhttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.customize_compilerjp t)distutils.sysconfig.get_config_h_filename(jm jn Yhttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_h_filenamejp t"distutils.sysconfig.get_config_var(jm jn Rhttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_varjp t#distutils.sysconfig.get_config_vars(jm jn Shttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_config_varsjp t)distutils.sysconfig.get_makefile_filename(jm jn Yhttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_makefile_filenamejp t"distutils.sysconfig.get_python_inc(jm jn Rhttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_python_incjp t"distutils.sysconfig.get_python_lib(jm jn Rhttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.get_python_libjp t$distutils.sysconfig.set_python_build(jm jn Thttps://docs.python.org/3/distutils/apiref.html#distutils.sysconfig.set_python_buildjp tdistutils.util.byte_compile(jm jn Khttps://docs.python.org/3/distutils/apiref.html#distutils.util.byte_compilejp tdistutils.util.change_root(jm jn Jhttps://docs.python.org/3/distutils/apiref.html#distutils.util.change_rootjp tdistutils.util.check_environ(jm jn Lhttps://docs.python.org/3/distutils/apiref.html#distutils.util.check_environjp tdistutils.util.convert_path(jm jn Khttps://docs.python.org/3/distutils/apiref.html#distutils.util.convert_pathjp tdistutils.util.execute(jm jn Fhttps://docs.python.org/3/distutils/apiref.html#distutils.util.executejp tdistutils.util.get_platform(jm jn Khttps://docs.python.org/3/distutils/apiref.html#distutils.util.get_platformjp tdistutils.util.rfc822_escape(jm jn Lhttps://docs.python.org/3/distutils/apiref.html#distutils.util.rfc822_escapejp tdistutils.util.split_quoted(jm jn Khttps://docs.python.org/3/distutils/apiref.html#distutils.util.split_quotedjp tdistutils.util.strtobool(jm jn Hhttps://docs.python.org/3/distutils/apiref.html#distutils.util.strtobooljp tdistutils.util.subst_vars(jm jn Ihttps://docs.python.org/3/distutils/apiref.html#distutils.util.subst_varsjp tdivmod(jm jn 7https://docs.python.org/3/library/functions.html#divmodjp tdoctest.DocFileSuite(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest.DocFileSuitejp tdoctest.DocTestSuite(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest.DocTestSuitejp t doctest.debug(jm jn https://docs.python.org/3/library/doctest.html#doctest.testmodjp tdoctest.testsource(jm jn Ahttps://docs.python.org/3/library/doctest.html#doctest.testsourcejp temail.charset.add_alias(jm jn Lhttps://docs.python.org/3/library/email.charset.html#email.charset.add_aliasjp temail.charset.add_charset(jm jn Nhttps://docs.python.org/3/library/email.charset.html#email.charset.add_charsetjp temail.charset.add_codec(jm jn Lhttps://docs.python.org/3/library/email.charset.html#email.charset.add_codecjp temail.encoders.encode_7or8bit(jm jn Shttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_7or8bitjp temail.encoders.encode_base64(jm jn Rhttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_base64jp temail.encoders.encode_noop(jm jn Phttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_noopjp temail.encoders.encode_quopri(jm jn Rhttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_quoprijp temail.header.decode_header(jm jn Nhttps://docs.python.org/3/library/email.header.html#email.header.decode_headerjp temail.header.make_header(jm jn Lhttps://docs.python.org/3/library/email.header.html#email.header.make_headerjp temail.iterators._structure(jm jn Qhttps://docs.python.org/3/library/email.iterators.html#email.iterators._structurejp t"email.iterators.body_line_iterator(jm jn Yhttps://docs.python.org/3/library/email.iterators.html#email.iterators.body_line_iteratorjp t&email.iterators.typed_subpart_iterator(jm jn ]https://docs.python.org/3/library/email.iterators.html#email.iterators.typed_subpart_iteratorjp temail.message_from_binary_file(jm jn Rhttps://docs.python.org/3/library/email.parser.html#email.message_from_binary_filejp temail.message_from_bytes(jm jn Lhttps://docs.python.org/3/library/email.parser.html#email.message_from_bytesjp temail.message_from_file(jm jn Khttps://docs.python.org/3/library/email.parser.html#email.message_from_filejp temail.message_from_string(jm jn Mhttps://docs.python.org/3/library/email.parser.html#email.message_from_stringjp t"email.utils.collapse_rfc2231_value(jm jn Uhttps://docs.python.org/3/library/email.utils.html#email.utils.collapse_rfc2231_valuejp temail.utils.decode_params(jm jn Lhttps://docs.python.org/3/library/email.utils.html#email.utils.decode_paramsjp temail.utils.decode_rfc2231(jm jn Mhttps://docs.python.org/3/library/email.utils.html#email.utils.decode_rfc2231jp temail.utils.encode_rfc2231(jm jn Mhttps://docs.python.org/3/library/email.utils.html#email.utils.encode_rfc2231jp temail.utils.format_datetime(jm jn Nhttps://docs.python.org/3/library/email.utils.html#email.utils.format_datetimejp temail.utils.formataddr(jm jn Ihttps://docs.python.org/3/library/email.utils.html#email.utils.formataddrjp temail.utils.formatdate(jm jn Ihttps://docs.python.org/3/library/email.utils.html#email.utils.formatdatejp temail.utils.getaddresses(jm jn Khttps://docs.python.org/3/library/email.utils.html#email.utils.getaddressesjp temail.utils.localtime(jm jn Hhttps://docs.python.org/3/library/email.utils.html#email.utils.localtimejp temail.utils.make_msgid(jm jn Ihttps://docs.python.org/3/library/email.utils.html#email.utils.make_msgidjp temail.utils.mktime_tz(jm jn Hhttps://docs.python.org/3/library/email.utils.html#email.utils.mktime_tzjp temail.utils.parseaddr(jm jn Hhttps://docs.python.org/3/library/email.utils.html#email.utils.parseaddrjp temail.utils.parsedate(jm jn Hhttps://docs.python.org/3/library/email.utils.html#email.utils.parsedatejp t!email.utils.parsedate_to_datetime(jm jn Thttps://docs.python.org/3/library/email.utils.html#email.utils.parsedate_to_datetimejp temail.utils.parsedate_tz(jm jn Khttps://docs.python.org/3/library/email.utils.html#email.utils.parsedate_tzjp temail.utils.quote(jm jn Dhttps://docs.python.org/3/library/email.utils.html#email.utils.quotejp temail.utils.unquote(jm jn Fhttps://docs.python.org/3/library/email.utils.html#email.utils.unquotejp tencodings.idna.ToASCII(jm jn Dhttps://docs.python.org/3/library/codecs.html#encodings.idna.ToASCIIjp tencodings.idna.ToUnicode(jm jn Fhttps://docs.python.org/3/library/codecs.html#encodings.idna.ToUnicodejp tencodings.idna.nameprep(jm jn Ehttps://docs.python.org/3/library/codecs.html#encodings.idna.nameprepjp tensurepip.bootstrap(jm jn Dhttps://docs.python.org/3/library/ensurepip.html#ensurepip.bootstrapjp tensurepip.version(jm jn Bhttps://docs.python.org/3/library/ensurepip.html#ensurepip.versionjp tenum.global_enum(jm jn https://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatchjp tfnmatch.fnmatchcase(jm jn Bhttps://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatchcasejp tfnmatch.translate(jm jn @https://docs.python.org/3/library/fnmatch.html#fnmatch.translatejp tformat(jm jn 7https://docs.python.org/3/library/functions.html#formatjp tfunctools.cache(jm jn @https://docs.python.org/3/library/functools.html#functools.cachejp tfunctools.cached_property(jm jn Jhttps://docs.python.org/3/library/functools.html#functools.cached_propertyjp tfunctools.cmp_to_key(jm jn Ehttps://docs.python.org/3/library/functools.html#functools.cmp_to_keyjp tfunctools.lru_cache(jm jn Dhttps://docs.python.org/3/library/functools.html#functools.lru_cachejp tfunctools.partial(jm jn Bhttps://docs.python.org/3/library/functools.html#functools.partialjp tfunctools.reduce(jm jn Ahttps://docs.python.org/3/library/functools.html#functools.reducejp tfunctools.singledispatch(jm jn Ihttps://docs.python.org/3/library/functools.html#functools.singledispatchjp tfunctools.total_ordering(jm jn Ihttps://docs.python.org/3/library/functools.html#functools.total_orderingjp tfunctools.update_wrapper(jm jn Ihttps://docs.python.org/3/library/functools.html#functools.update_wrapperjp tfunctools.wraps(jm jn @https://docs.python.org/3/library/functools.html#functools.wrapsjp t gc.collect(jm jn 4https://docs.python.org/3/library/gc.html#gc.collectjp t gc.disable(jm jn 4https://docs.python.org/3/library/gc.html#gc.disablejp t gc.enable(jm jn 3https://docs.python.org/3/library/gc.html#gc.enablejp t gc.freeze(jm jn 3https://docs.python.org/3/library/gc.html#gc.freezejp t gc.get_count(jm jn 6https://docs.python.org/3/library/gc.html#gc.get_countjp t gc.get_debug(jm jn 6https://docs.python.org/3/library/gc.html#gc.get_debugjp tgc.get_freeze_count(jm jn =https://docs.python.org/3/library/gc.html#gc.get_freeze_countjp tgc.get_objects(jm jn 8https://docs.python.org/3/library/gc.html#gc.get_objectsjp tgc.get_referents(jm jn :https://docs.python.org/3/library/gc.html#gc.get_referentsjp tgc.get_referrers(jm jn :https://docs.python.org/3/library/gc.html#gc.get_referrersjp t gc.get_stats(jm jn 6https://docs.python.org/3/library/gc.html#gc.get_statsjp tgc.get_threshold(jm jn :https://docs.python.org/3/library/gc.html#gc.get_thresholdjp tgc.is_finalized(jm jn 9https://docs.python.org/3/library/gc.html#gc.is_finalizedjp t gc.is_tracked(jm jn 7https://docs.python.org/3/library/gc.html#gc.is_trackedjp t gc.isenabled(jm jn 6https://docs.python.org/3/library/gc.html#gc.isenabledjp t gc.set_debug(jm jn 6https://docs.python.org/3/library/gc.html#gc.set_debugjp tgc.set_threshold(jm jn :https://docs.python.org/3/library/gc.html#gc.set_thresholdjp t gc.unfreeze(jm jn 5https://docs.python.org/3/library/gc.html#gc.unfreezejp tget_special_folder_path(jm jn Jhttps://docs.python.org/3/distutils/builtdist.html#get_special_folder_pathjp tgetattr(jm jn 8https://docs.python.org/3/library/functions.html#getattrjp t getopt.getopt(jm jn ;https://docs.python.org/3/library/getopt.html#getopt.getoptjp tgetopt.gnu_getopt(jm jn ?https://docs.python.org/3/library/getopt.html#getopt.gnu_getoptjp tgetpass.getpass(jm jn >https://docs.python.org/3/library/getpass.html#getpass.getpassjp tgetpass.getuser(jm jn >https://docs.python.org/3/library/getpass.html#getpass.getuserjp tgettext.bindtextdomain(jm jn Ehttps://docs.python.org/3/library/gettext.html#gettext.bindtextdomainjp tgettext.dgettext(jm jn ?https://docs.python.org/3/library/gettext.html#gettext.dgettextjp tgettext.dngettext(jm jn @https://docs.python.org/3/library/gettext.html#gettext.dngettextjp tgettext.dnpgettext(jm jn Ahttps://docs.python.org/3/library/gettext.html#gettext.dnpgettextjp tgettext.dpgettext(jm jn @https://docs.python.org/3/library/gettext.html#gettext.dpgettextjp t gettext.find(jm jn ;https://docs.python.org/3/library/gettext.html#gettext.findjp tgettext.gettext(jm jn >https://docs.python.org/3/library/gettext.html#gettext.gettextjp tgettext.install(jm jn >https://docs.python.org/3/library/gettext.html#gettext.installjp tgettext.ngettext(jm jn ?https://docs.python.org/3/library/gettext.html#gettext.ngettextjp tgettext.npgettext(jm jn @https://docs.python.org/3/library/gettext.html#gettext.npgettextjp tgettext.pgettext(jm jn ?https://docs.python.org/3/library/gettext.html#gettext.pgettextjp tgettext.textdomain(jm jn Ahttps://docs.python.org/3/library/gettext.html#gettext.textdomainjp tgettext.translation(jm jn Bhttps://docs.python.org/3/library/gettext.html#gettext.translationjp t glob.escape(jm jn 7https://docs.python.org/3/library/glob.html#glob.escapejp t glob.glob(jm jn 5https://docs.python.org/3/library/glob.html#glob.globjp t glob.iglob(jm jn 6https://docs.python.org/3/library/glob.html#glob.iglobjp tglobals(jm jn 8https://docs.python.org/3/library/functions.html#globalsjp t grp.getgrall(jm jn 7https://docs.python.org/3/library/grp.html#grp.getgralljp t grp.getgrgid(jm jn 7https://docs.python.org/3/library/grp.html#grp.getgrgidjp t grp.getgrnam(jm jn 7https://docs.python.org/3/library/grp.html#grp.getgrnamjp t gzip.compress(jm jn 9https://docs.python.org/3/library/gzip.html#gzip.compressjp tgzip.decompress(jm jn ;https://docs.python.org/3/library/gzip.html#gzip.decompressjp t gzip.open(jm jn 5https://docs.python.org/3/library/gzip.html#gzip.openjp thasattr(jm jn 8https://docs.python.org/3/library/functions.html#hasattrjp thash(jm jn 5https://docs.python.org/3/library/functions.html#hashjp thashlib.blake2b(jm jn >https://docs.python.org/3/library/hashlib.html#hashlib.blake2bjp thashlib.blake2s(jm jn >https://docs.python.org/3/library/hashlib.html#hashlib.blake2sjp thashlib.file_digest(jm jn Bhttps://docs.python.org/3/library/hashlib.html#hashlib.file_digestjp t hashlib.md5(jm jn :https://docs.python.org/3/library/hashlib.html#hashlib.md5jp t hashlib.new(jm jn :https://docs.python.org/3/library/hashlib.html#hashlib.newjp thashlib.pbkdf2_hmac(jm jn Bhttps://docs.python.org/3/library/hashlib.html#hashlib.pbkdf2_hmacjp thashlib.scrypt(jm jn =https://docs.python.org/3/library/hashlib.html#hashlib.scryptjp t hashlib.sha1(jm jn ;https://docs.python.org/3/library/hashlib.html#hashlib.sha1jp thashlib.sha224(jm jn =https://docs.python.org/3/library/hashlib.html#hashlib.sha224jp thashlib.sha256(jm jn =https://docs.python.org/3/library/hashlib.html#hashlib.sha256jp thashlib.sha384(jm jn =https://docs.python.org/3/library/hashlib.html#hashlib.sha384jp thashlib.sha3_224(jm jn ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_224jp thashlib.sha3_256(jm jn ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_256jp thashlib.sha3_384(jm jn ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_384jp thashlib.sha3_512(jm jn ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_512jp thashlib.sha512(jm jn =https://docs.python.org/3/library/hashlib.html#hashlib.sha512jp thashlib.shake_128(jm jn @https://docs.python.org/3/library/hashlib.html#hashlib.shake_128jp thashlib.shake_256(jm jn @https://docs.python.org/3/library/hashlib.html#hashlib.shake_256jp t heapq.heapify(jm jn :https://docs.python.org/3/library/heapq.html#heapq.heapifyjp t heapq.heappop(jm jn :https://docs.python.org/3/library/heapq.html#heapq.heappopjp theapq.heappush(jm jn ;https://docs.python.org/3/library/heapq.html#heapq.heappushjp theapq.heappushpop(jm jn >https://docs.python.org/3/library/heapq.html#heapq.heappushpopjp theapq.heapreplace(jm jn >https://docs.python.org/3/library/heapq.html#heapq.heapreplacejp t heapq.merge(jm jn 8https://docs.python.org/3/library/heapq.html#heapq.mergejp theapq.nlargest(jm jn ;https://docs.python.org/3/library/heapq.html#heapq.nlargestjp theapq.nsmallest(jm jn https://docs.python.org/3/library/inspect.html#inspect.getfilejp tinspect.getframeinfo(jm jn Chttps://docs.python.org/3/library/inspect.html#inspect.getframeinfojp tinspect.getfullargspec(jm jn Ehttps://docs.python.org/3/library/inspect.html#inspect.getfullargspecjp tinspect.getgeneratorlocals(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.getgeneratorlocalsjp tinspect.getgeneratorstate(jm jn Hhttps://docs.python.org/3/library/inspect.html#inspect.getgeneratorstatejp tinspect.getinnerframes(jm jn Ehttps://docs.python.org/3/library/inspect.html#inspect.getinnerframesjp tinspect.getmembers(jm jn Ahttps://docs.python.org/3/library/inspect.html#inspect.getmembersjp tinspect.getmembers_static(jm jn Hhttps://docs.python.org/3/library/inspect.html#inspect.getmembers_staticjp tinspect.getmodule(jm jn @https://docs.python.org/3/library/inspect.html#inspect.getmodulejp tinspect.getmodulename(jm jn Dhttps://docs.python.org/3/library/inspect.html#inspect.getmodulenamejp tinspect.getmro(jm jn =https://docs.python.org/3/library/inspect.html#inspect.getmrojp tinspect.getouterframes(jm jn Ehttps://docs.python.org/3/library/inspect.html#inspect.getouterframesjp tinspect.getsource(jm jn @https://docs.python.org/3/library/inspect.html#inspect.getsourcejp tinspect.getsourcefile(jm jn Dhttps://docs.python.org/3/library/inspect.html#inspect.getsourcefilejp tinspect.getsourcelines(jm jn Ehttps://docs.python.org/3/library/inspect.html#inspect.getsourcelinesjp tinspect.isabstract(jm jn Ahttps://docs.python.org/3/library/inspect.html#inspect.isabstractjp tinspect.isasyncgen(jm jn Ahttps://docs.python.org/3/library/inspect.html#inspect.isasyncgenjp tinspect.isasyncgenfunction(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.isasyncgenfunctionjp tinspect.isawaitable(jm jn Bhttps://docs.python.org/3/library/inspect.html#inspect.isawaitablejp tinspect.isbuiltin(jm jn @https://docs.python.org/3/library/inspect.html#inspect.isbuiltinjp tinspect.isclass(jm jn >https://docs.python.org/3/library/inspect.html#inspect.isclassjp tinspect.iscode(jm jn =https://docs.python.org/3/library/inspect.html#inspect.iscodejp tinspect.iscoroutine(jm jn Bhttps://docs.python.org/3/library/inspect.html#inspect.iscoroutinejp tinspect.iscoroutinefunction(jm jn Jhttps://docs.python.org/3/library/inspect.html#inspect.iscoroutinefunctionjp tinspect.isdatadescriptor(jm jn Ghttps://docs.python.org/3/library/inspect.html#inspect.isdatadescriptorjp tinspect.isframe(jm jn >https://docs.python.org/3/library/inspect.html#inspect.isframejp tinspect.isfunction(jm jn Ahttps://docs.python.org/3/library/inspect.html#inspect.isfunctionjp tinspect.isgenerator(jm jn Bhttps://docs.python.org/3/library/inspect.html#inspect.isgeneratorjp tinspect.isgeneratorfunction(jm jn Jhttps://docs.python.org/3/library/inspect.html#inspect.isgeneratorfunctionjp tinspect.isgetsetdescriptor(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.isgetsetdescriptorjp tinspect.ismemberdescriptor(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.ismemberdescriptorjp tinspect.ismethod(jm jn ?https://docs.python.org/3/library/inspect.html#inspect.ismethodjp tinspect.ismethoddescriptor(jm jn Ihttps://docs.python.org/3/library/inspect.html#inspect.ismethoddescriptorjp tinspect.ismethodwrapper(jm jn Fhttps://docs.python.org/3/library/inspect.html#inspect.ismethodwrapperjp tinspect.ismodule(jm jn ?https://docs.python.org/3/library/inspect.html#inspect.ismodulejp tinspect.isroutine(jm jn @https://docs.python.org/3/library/inspect.html#inspect.isroutinejp tinspect.istraceback(jm jn Bhttps://docs.python.org/3/library/inspect.html#inspect.istracebackjp tinspect.signature(jm jn @https://docs.python.org/3/library/inspect.html#inspect.signaturejp t inspect.stack(jm jn https://docs.python.org/3/library/itertools.html#itertools.teejp titertools.zip_longest(jm jn Fhttps://docs.python.org/3/library/itertools.html#itertools.zip_longestjp t json.dump(jm jn 5https://docs.python.org/3/library/json.html#json.dumpjp t json.dumps(jm jn 6https://docs.python.org/3/library/json.html#json.dumpsjp t json.load(jm jn 5https://docs.python.org/3/library/json.html#json.loadjp t json.loads(jm jn 6https://docs.python.org/3/library/json.html#json.loadsjp tkeyword.iskeyword(jm jn @https://docs.python.org/3/library/keyword.html#keyword.iskeywordjp tkeyword.issoftkeyword(jm jn Dhttps://docs.python.org/3/library/keyword.html#keyword.issoftkeywordjp tlen(jm jn 4https://docs.python.org/3/library/functions.html#lenjp tlinecache.checkcache(jm jn Ehttps://docs.python.org/3/library/linecache.html#linecache.checkcachejp tlinecache.clearcache(jm jn Ehttps://docs.python.org/3/library/linecache.html#linecache.clearcachejp tlinecache.getline(jm jn Bhttps://docs.python.org/3/library/linecache.html#linecache.getlinejp tlinecache.lazycache(jm jn Dhttps://docs.python.org/3/library/linecache.html#linecache.lazycachejp t locale.atof(jm jn 9https://docs.python.org/3/library/locale.html#locale.atofjp t locale.atoi(jm jn 9https://docs.python.org/3/library/locale.html#locale.atoijp tlocale.bindtextdomain(jm jn Chttps://docs.python.org/3/library/locale.html#locale.bindtextdomainjp tlocale.currency(jm jn =https://docs.python.org/3/library/locale.html#locale.currencyjp tlocale.dcgettext(jm jn >https://docs.python.org/3/library/locale.html#locale.dcgettextjp tlocale.delocalize(jm jn ?https://docs.python.org/3/library/locale.html#locale.delocalizejp tlocale.dgettext(jm jn =https://docs.python.org/3/library/locale.html#locale.dgettextjp t locale.format(jm jn ;https://docs.python.org/3/library/locale.html#locale.formatjp tlocale.format_string(jm jn Bhttps://docs.python.org/3/library/locale.html#locale.format_stringjp tlocale.getdefaultlocale(jm jn Ehttps://docs.python.org/3/library/locale.html#locale.getdefaultlocalejp tlocale.getencoding(jm jn @https://docs.python.org/3/library/locale.html#locale.getencodingjp tlocale.getlocale(jm jn >https://docs.python.org/3/library/locale.html#locale.getlocalejp tlocale.getpreferredencoding(jm jn Ihttps://docs.python.org/3/library/locale.html#locale.getpreferredencodingjp tlocale.gettext(jm jn https://docs.python.org/3/library/locale.html#locale.normalizejp tlocale.resetlocale(jm jn @https://docs.python.org/3/library/locale.html#locale.resetlocalejp tlocale.setlocale(jm jn >https://docs.python.org/3/library/locale.html#locale.setlocalejp t locale.str(jm jn 8https://docs.python.org/3/library/locale.html#locale.strjp tlocale.strcoll(jm jn https://docs.python.org/3/library/logging.html#logging.disablejp t logging.error(jm jn https://docs.python.org/3/library/logging.html#logging.warningjp t lzma.compress(jm jn 9https://docs.python.org/3/library/lzma.html#lzma.compressjp tlzma.decompress(jm jn ;https://docs.python.org/3/library/lzma.html#lzma.decompressjp tlzma.is_check_supported(jm jn Chttps://docs.python.org/3/library/lzma.html#lzma.is_check_supportedjp t lzma.open(jm jn 5https://docs.python.org/3/library/lzma.html#lzma.openjp tmailcap.findmatch(jm jn @https://docs.python.org/3/library/mailcap.html#mailcap.findmatchjp tmailcap.getcaps(jm jn >https://docs.python.org/3/library/mailcap.html#mailcap.getcapsjp tmap(jm jn 4https://docs.python.org/3/library/functions.html#mapjp t marshal.dump(jm jn ;https://docs.python.org/3/library/marshal.html#marshal.dumpjp t marshal.dumps(jm jn https://docs.python.org/3/library/msilib.html#msilib.FCICreatejp tmsilib.OpenDatabase(jm jn Ahttps://docs.python.org/3/library/msilib.html#msilib.OpenDatabasejp tmsilib.UuidCreate(jm jn ?https://docs.python.org/3/library/msilib.html#msilib.UuidCreatejp tmsilib.add_data(jm jn =https://docs.python.org/3/library/msilib.html#msilib.add_datajp tmsilib.add_stream(jm jn ?https://docs.python.org/3/library/msilib.html#msilib.add_streamjp tmsilib.add_tables(jm jn ?https://docs.python.org/3/library/msilib.html#msilib.add_tablesjp tmsilib.gen_uuid(jm jn =https://docs.python.org/3/library/msilib.html#msilib.gen_uuidjp tmsilib.init_database(jm jn Bhttps://docs.python.org/3/library/msilib.html#msilib.init_databasejp tmsvcrt.get_osfhandle(jm jn Bhttps://docs.python.org/3/library/msvcrt.html#msvcrt.get_osfhandlejp t msvcrt.getch(jm jn :https://docs.python.org/3/library/msvcrt.html#msvcrt.getchjp t msvcrt.getche(jm jn ;https://docs.python.org/3/library/msvcrt.html#msvcrt.getchejp t msvcrt.getwch(jm jn ;https://docs.python.org/3/library/msvcrt.html#msvcrt.getwchjp tmsvcrt.getwche(jm jn https://docs.python.org/3/library/operator.html#operator.indexjp toperator.indexOf(jm jn @https://docs.python.org/3/library/operator.html#operator.indexOfjp t operator.inv(jm jn https://docs.python.org/3/library/operator.html#operator.truthjp t operator.xor(jm jn https://docs.python.org/3/library/os.html#os.add_dll_directoryjp tos.chdir(jm jn 2https://docs.python.org/3/library/os.html#os.chdirjp t os.chflags(jm jn 4https://docs.python.org/3/library/os.html#os.chflagsjp tos.chmod(jm jn 2https://docs.python.org/3/library/os.html#os.chmodjp tos.chown(jm jn 2https://docs.python.org/3/library/os.html#os.chownjp t os.chroot(jm jn 3https://docs.python.org/3/library/os.html#os.chrootjp tos.close(jm jn 2https://docs.python.org/3/library/os.html#os.closejp t os.closerange(jm jn 7https://docs.python.org/3/library/os.html#os.closerangejp t os.confstr(jm jn 4https://docs.python.org/3/library/os.html#os.confstrjp tos.copy_file_range(jm jn https://docs.python.org/3/library/os.html#os.get_terminal_sizejp t os.getcwd(jm jn 3https://docs.python.org/3/library/os.html#os.getcwdjp t os.getcwdb(jm jn 4https://docs.python.org/3/library/os.html#os.getcwdbjp t os.getegid(jm jn 4https://docs.python.org/3/library/os.html#os.getegidjp t os.getenv(jm jn 3https://docs.python.org/3/library/os.html#os.getenvjp t os.getenvb(jm jn 4https://docs.python.org/3/library/os.html#os.getenvbjp t os.geteuid(jm jn 4https://docs.python.org/3/library/os.html#os.geteuidjp t os.getgid(jm jn 3https://docs.python.org/3/library/os.html#os.getgidjp tos.getgrouplist(jm jn 9https://docs.python.org/3/library/os.html#os.getgrouplistjp t os.getgroups(jm jn 6https://docs.python.org/3/library/os.html#os.getgroupsjp t os.getloadavg(jm jn 7https://docs.python.org/3/library/os.html#os.getloadavgjp t os.getlogin(jm jn 5https://docs.python.org/3/library/os.html#os.getloginjp t os.getpgid(jm jn 4https://docs.python.org/3/library/os.html#os.getpgidjp t os.getpgrp(jm jn 4https://docs.python.org/3/library/os.html#os.getpgrpjp t os.getpid(jm jn 3https://docs.python.org/3/library/os.html#os.getpidjp t os.getppid(jm jn 4https://docs.python.org/3/library/os.html#os.getppidjp tos.getpriority(jm jn 8https://docs.python.org/3/library/os.html#os.getpriorityjp t os.getrandom(jm jn 6https://docs.python.org/3/library/os.html#os.getrandomjp t os.getresgid(jm jn 6https://docs.python.org/3/library/os.html#os.getresgidjp t os.getresuid(jm jn 6https://docs.python.org/3/library/os.html#os.getresuidjp t os.getsid(jm jn 3https://docs.python.org/3/library/os.html#os.getsidjp t os.getuid(jm jn 3https://docs.python.org/3/library/os.html#os.getuidjp t os.getxattr(jm jn 5https://docs.python.org/3/library/os.html#os.getxattrjp t os.initgroups(jm jn 7https://docs.python.org/3/library/os.html#os.initgroupsjp t os.isatty(jm jn 3https://docs.python.org/3/library/os.html#os.isattyjp tos.kill(jm jn 1https://docs.python.org/3/library/os.html#os.killjp t os.killpg(jm jn 3https://docs.python.org/3/library/os.html#os.killpgjp t os.lchflags(jm jn 5https://docs.python.org/3/library/os.html#os.lchflagsjp t os.lchmod(jm jn 3https://docs.python.org/3/library/os.html#os.lchmodjp t os.lchown(jm jn 3https://docs.python.org/3/library/os.html#os.lchownjp tos.link(jm jn 1https://docs.python.org/3/library/os.html#os.linkjp t os.listdir(jm jn 4https://docs.python.org/3/library/os.html#os.listdirjp t os.listxattr(jm jn 6https://docs.python.org/3/library/os.html#os.listxattrjp tos.lockf(jm jn 2https://docs.python.org/3/library/os.html#os.lockfjp t os.login_tty(jm jn 6https://docs.python.org/3/library/os.html#os.login_ttyjp tos.lseek(jm jn 2https://docs.python.org/3/library/os.html#os.lseekjp tos.lstat(jm jn 2https://docs.python.org/3/library/os.html#os.lstatjp tos.major(jm jn 2https://docs.python.org/3/library/os.html#os.majorjp t os.makedev(jm jn 4https://docs.python.org/3/library/os.html#os.makedevjp t os.makedirs(jm jn 5https://docs.python.org/3/library/os.html#os.makedirsjp tos.memfd_create(jm jn 9https://docs.python.org/3/library/os.html#os.memfd_createjp tos.minor(jm jn 2https://docs.python.org/3/library/os.html#os.minorjp tos.mkdir(jm jn 2https://docs.python.org/3/library/os.html#os.mkdirjp t os.mkfifo(jm jn 3https://docs.python.org/3/library/os.html#os.mkfifojp tos.mknod(jm jn 2https://docs.python.org/3/library/os.html#os.mknodjp tos.nice(jm jn 1https://docs.python.org/3/library/os.html#os.nicejp tos.open(jm jn 1https://docs.python.org/3/library/os.html#os.openjp t os.openpty(jm jn 4https://docs.python.org/3/library/os.html#os.openptyjp tos.path.abspath(jm jn >https://docs.python.org/3/library/os.path.html#os.path.abspathjp tos.path.basename(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.basenamejp tos.path.commonpath(jm jn Ahttps://docs.python.org/3/library/os.path.html#os.path.commonpathjp tos.path.commonprefix(jm jn Chttps://docs.python.org/3/library/os.path.html#os.path.commonprefixjp tos.path.dirname(jm jn >https://docs.python.org/3/library/os.path.html#os.path.dirnamejp tos.path.exists(jm jn =https://docs.python.org/3/library/os.path.html#os.path.existsjp tos.path.expanduser(jm jn Ahttps://docs.python.org/3/library/os.path.html#os.path.expanduserjp tos.path.expandvars(jm jn Ahttps://docs.python.org/3/library/os.path.html#os.path.expandvarsjp tos.path.getatime(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.getatimejp tos.path.getctime(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.getctimejp tos.path.getmtime(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.getmtimejp tos.path.getsize(jm jn >https://docs.python.org/3/library/os.path.html#os.path.getsizejp t os.path.isabs(jm jn https://docs.python.org/3/library/os.path.html#os.path.ismountjp t os.path.join(jm jn ;https://docs.python.org/3/library/os.path.html#os.path.joinjp tos.path.lexists(jm jn >https://docs.python.org/3/library/os.path.html#os.path.lexistsjp tos.path.normcase(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.normcasejp tos.path.normpath(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.normpathjp tos.path.realpath(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.realpathjp tos.path.relpath(jm jn >https://docs.python.org/3/library/os.path.html#os.path.relpathjp tos.path.samefile(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.samefilejp tos.path.sameopenfile(jm jn Chttps://docs.python.org/3/library/os.path.html#os.path.sameopenfilejp tos.path.samestat(jm jn ?https://docs.python.org/3/library/os.path.html#os.path.samestatjp t os.path.split(jm jn https://docs.python.org/3/library/os.html#os.sched_getaffinityjp tos.sched_getparam(jm jn ;https://docs.python.org/3/library/os.html#os.sched_getparamjp tos.sched_getscheduler(jm jn ?https://docs.python.org/3/library/os.html#os.sched_getschedulerjp tos.sched_rr_get_interval(jm jn Bhttps://docs.python.org/3/library/os.html#os.sched_rr_get_intervaljp tos.sched_setaffinity(jm jn >https://docs.python.org/3/library/os.html#os.sched_setaffinityjp tos.sched_setparam(jm jn ;https://docs.python.org/3/library/os.html#os.sched_setparamjp tos.sched_setscheduler(jm jn ?https://docs.python.org/3/library/os.html#os.sched_setschedulerjp tos.sched_yield(jm jn 8https://docs.python.org/3/library/os.html#os.sched_yieldjp t os.sendfile(jm jn 5https://docs.python.org/3/library/os.html#os.sendfilejp tos.set_blocking(jm jn 9https://docs.python.org/3/library/os.html#os.set_blockingjp tos.set_handle_inheritable(jm jn Chttps://docs.python.org/3/library/os.html#os.set_handle_inheritablejp tos.set_inheritable(jm jn https://docs.python.org/3/library/platform.html#platform.unamejp tplatform.version(jm jn @https://docs.python.org/3/library/platform.html#platform.versionjp tplatform.win32_edition(jm jn Fhttps://docs.python.org/3/library/platform.html#platform.win32_editionjp tplatform.win32_is_iot(jm jn Ehttps://docs.python.org/3/library/platform.html#platform.win32_is_iotjp tplatform.win32_ver(jm jn Bhttps://docs.python.org/3/library/platform.html#platform.win32_verjp t plistlib.dump(jm jn =https://docs.python.org/3/library/plistlib.html#plistlib.dumpjp tplistlib.dumps(jm jn >https://docs.python.org/3/library/plistlib.html#plistlib.dumpsjp t plistlib.load(jm jn =https://docs.python.org/3/library/plistlib.html#plistlib.loadjp tplistlib.loads(jm jn >https://docs.python.org/3/library/plistlib.html#plistlib.loadsjp tpow(jm jn 4https://docs.python.org/3/library/functions.html#powjp tpprint.isreadable(jm jn ?https://docs.python.org/3/library/pprint.html#pprint.isreadablejp tpprint.isrecursive(jm jn @https://docs.python.org/3/library/pprint.html#pprint.isrecursivejp tpprint.pformat(jm jn https://docs.python.org/3/library/random.html#random.randbytesjp trandom.randint(jm jn https://docs.python.org/3/library/random.html#random.randrangejp t random.sample(jm jn ;https://docs.python.org/3/library/random.html#random.samplejp t random.seed(jm jn 9https://docs.python.org/3/library/random.html#random.seedjp trandom.setstate(jm jn =https://docs.python.org/3/library/random.html#random.setstatejp trandom.shuffle(jm jn https://docs.python.org/3/library/signal.html#signal.getitimerjp tsignal.getsignal(jm jn >https://docs.python.org/3/library/signal.html#signal.getsignaljp t signal.pause(jm jn :https://docs.python.org/3/library/signal.html#signal.pausejp tsignal.pidfd_send_signal(jm jn Fhttps://docs.python.org/3/library/signal.html#signal.pidfd_send_signaljp tsignal.pthread_kill(jm jn Ahttps://docs.python.org/3/library/signal.html#signal.pthread_killjp tsignal.pthread_sigmask(jm jn Dhttps://docs.python.org/3/library/signal.html#signal.pthread_sigmaskjp tsignal.raise_signal(jm jn Ahttps://docs.python.org/3/library/signal.html#signal.raise_signaljp tsignal.set_wakeup_fd(jm jn Bhttps://docs.python.org/3/library/signal.html#signal.set_wakeup_fdjp tsignal.setitimer(jm jn >https://docs.python.org/3/library/signal.html#signal.setitimerjp tsignal.siginterrupt(jm jn Ahttps://docs.python.org/3/library/signal.html#signal.siginterruptjp t signal.signal(jm jn ;https://docs.python.org/3/library/signal.html#signal.signaljp tsignal.sigpending(jm jn ?https://docs.python.org/3/library/signal.html#signal.sigpendingjp tsignal.sigtimedwait(jm jn Ahttps://docs.python.org/3/library/signal.html#signal.sigtimedwaitjp tsignal.sigwait(jm jn https://docs.python.org/3/library/signal.html#signal.strsignaljp tsignal.valid_signals(jm jn Bhttps://docs.python.org/3/library/signal.html#signal.valid_signalsjp tsite.addsitedir(jm jn ;https://docs.python.org/3/library/site.html#site.addsitedirjp tsite.getsitepackages(jm jn @https://docs.python.org/3/library/site.html#site.getsitepackagesjp tsite.getuserbase(jm jn https://docs.python.org/3/library/socket.html#socket.fromsharejp tsocket.getaddrinfo(jm jn @https://docs.python.org/3/library/socket.html#socket.getaddrinfojp tsocket.getdefaulttimeout(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.getdefaulttimeoutjp tsocket.getfqdn(jm jn https://docs.python.org/3/library/socket.html#socket.inet_atonjp tsocket.inet_ntoa(jm jn >https://docs.python.org/3/library/socket.html#socket.inet_ntoajp tsocket.inet_ntop(jm jn >https://docs.python.org/3/library/socket.html#socket.inet_ntopjp tsocket.inet_pton(jm jn >https://docs.python.org/3/library/socket.html#socket.inet_ptonjp t socket.ntohl(jm jn :https://docs.python.org/3/library/socket.html#socket.ntohljp t socket.ntohs(jm jn :https://docs.python.org/3/library/socket.html#socket.ntohsjp tsocket.recv_fds(jm jn =https://docs.python.org/3/library/socket.html#socket.recv_fdsjp tsocket.send_fds(jm jn =https://docs.python.org/3/library/socket.html#socket.send_fdsjp tsocket.setdefaulttimeout(jm jn Fhttps://docs.python.org/3/library/socket.html#socket.setdefaulttimeoutjp tsocket.sethostname(jm jn @https://docs.python.org/3/library/socket.html#socket.sethostnamejp tsocket.socketpair(jm jn ?https://docs.python.org/3/library/socket.html#socket.socketpairjp tsorted(jm jn 7https://docs.python.org/3/library/functions.html#sortedjp t spwd.getspall(jm jn 9https://docs.python.org/3/library/spwd.html#spwd.getspalljp t spwd.getspnam(jm jn 9https://docs.python.org/3/library/spwd.html#spwd.getspnamjp tsqlite3.complete_statement(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3.complete_statementjp tsqlite3.connect(jm jn >https://docs.python.org/3/library/sqlite3.html#sqlite3.connectjp t"sqlite3.enable_callback_tracebacks(jm jn Qhttps://docs.python.org/3/library/sqlite3.html#sqlite3.enable_callback_tracebacksjp tsqlite3.register_adapter(jm jn Ghttps://docs.python.org/3/library/sqlite3.html#sqlite3.register_adapterjp tsqlite3.register_converter(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3.register_converterjp tssl.DER_cert_to_PEM_cert(jm jn Chttps://docs.python.org/3/library/ssl.html#ssl.DER_cert_to_PEM_certjp tssl.PEM_cert_to_DER_cert(jm jn Chttps://docs.python.org/3/library/ssl.html#ssl.PEM_cert_to_DER_certjp t ssl.RAND_add(jm jn 7https://docs.python.org/3/library/ssl.html#ssl.RAND_addjp tssl.RAND_bytes(jm jn 9https://docs.python.org/3/library/ssl.html#ssl.RAND_bytesjp tssl.RAND_pseudo_bytes(jm jn @https://docs.python.org/3/library/ssl.html#ssl.RAND_pseudo_bytesjp tssl.RAND_status(jm jn :https://docs.python.org/3/library/ssl.html#ssl.RAND_statusjp tssl.cert_time_to_seconds(jm jn Chttps://docs.python.org/3/library/ssl.html#ssl.cert_time_to_secondsjp tssl.create_default_context(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.create_default_contextjp tssl.enum_certificates(jm jn @https://docs.python.org/3/library/ssl.html#ssl.enum_certificatesjp t ssl.enum_crls(jm jn 8https://docs.python.org/3/library/ssl.html#ssl.enum_crlsjp tssl.get_default_verify_paths(jm jn Ghttps://docs.python.org/3/library/ssl.html#ssl.get_default_verify_pathsjp tssl.get_server_certificate(jm jn Ehttps://docs.python.org/3/library/ssl.html#ssl.get_server_certificatejp tssl.match_hostname(jm jn =https://docs.python.org/3/library/ssl.html#ssl.match_hostnamejp tssl.wrap_socket(jm jn :https://docs.python.org/3/library/ssl.html#ssl.wrap_socketjp t stat.S_IFMT(jm jn 7https://docs.python.org/3/library/stat.html#stat.S_IFMTjp t stat.S_IMODE(jm jn 8https://docs.python.org/3/library/stat.html#stat.S_IMODEjp t stat.S_ISBLK(jm jn 8https://docs.python.org/3/library/stat.html#stat.S_ISBLKjp t stat.S_ISCHR(jm jn 8https://docs.python.org/3/library/stat.html#stat.S_ISCHRjp t stat.S_ISDIR(jm jn 8https://docs.python.org/3/library/stat.html#stat.S_ISDIRjp t stat.S_ISDOOR(jm jn 9https://docs.python.org/3/library/stat.html#stat.S_ISDOORjp t stat.S_ISFIFO(jm jn 9https://docs.python.org/3/library/stat.html#stat.S_ISFIFOjp t stat.S_ISLNK(jm jn 8https://docs.python.org/3/library/stat.html#stat.S_ISLNKjp t stat.S_ISPORT(jm jn 9https://docs.python.org/3/library/stat.html#stat.S_ISPORTjp t stat.S_ISREG(jm jn 8https://docs.python.org/3/library/stat.html#stat.S_ISREGjp t stat.S_ISSOCK(jm jn 9https://docs.python.org/3/library/stat.html#stat.S_ISSOCKjp t stat.S_ISWHT(jm jn 8https://docs.python.org/3/library/stat.html#stat.S_ISWHTjp t stat.filemode(jm jn 9https://docs.python.org/3/library/stat.html#stat.filemodejp t staticmethod(jm jn =https://docs.python.org/3/library/functions.html#staticmethodjp tstatistics.correlation(jm jn Hhttps://docs.python.org/3/library/statistics.html#statistics.correlationjp tstatistics.covariance(jm jn Ghttps://docs.python.org/3/library/statistics.html#statistics.covariancejp tstatistics.fmean(jm jn Bhttps://docs.python.org/3/library/statistics.html#statistics.fmeanjp tstatistics.geometric_mean(jm jn Khttps://docs.python.org/3/library/statistics.html#statistics.geometric_meanjp tstatistics.harmonic_mean(jm jn Jhttps://docs.python.org/3/library/statistics.html#statistics.harmonic_meanjp tstatistics.linear_regression(jm jn Nhttps://docs.python.org/3/library/statistics.html#statistics.linear_regressionjp tstatistics.mean(jm jn Ahttps://docs.python.org/3/library/statistics.html#statistics.meanjp tstatistics.median(jm jn Chttps://docs.python.org/3/library/statistics.html#statistics.medianjp tstatistics.median_grouped(jm jn Khttps://docs.python.org/3/library/statistics.html#statistics.median_groupedjp tstatistics.median_high(jm jn Hhttps://docs.python.org/3/library/statistics.html#statistics.median_highjp tstatistics.median_low(jm jn Ghttps://docs.python.org/3/library/statistics.html#statistics.median_lowjp tstatistics.mode(jm jn Ahttps://docs.python.org/3/library/statistics.html#statistics.modejp tstatistics.multimode(jm jn Fhttps://docs.python.org/3/library/statistics.html#statistics.multimodejp tstatistics.pstdev(jm jn Chttps://docs.python.org/3/library/statistics.html#statistics.pstdevjp tstatistics.pvariance(jm jn Fhttps://docs.python.org/3/library/statistics.html#statistics.pvariancejp tstatistics.quantiles(jm jn Fhttps://docs.python.org/3/library/statistics.html#statistics.quantilesjp tstatistics.stdev(jm jn Bhttps://docs.python.org/3/library/statistics.html#statistics.stdevjp tstatistics.variance(jm jn Ehttps://docs.python.org/3/library/statistics.html#statistics.variancejp tstring.capwords(jm jn =https://docs.python.org/3/library/string.html#string.capwordsjp tstringprep.in_table_a1(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_a1jp tstringprep.in_table_b1(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_b1jp tstringprep.in_table_c11(jm jn Ihttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11jp tstringprep.in_table_c11_c12(jm jn Mhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11_c12jp tstringprep.in_table_c12(jm jn Ihttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c12jp tstringprep.in_table_c21(jm jn Ihttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21jp tstringprep.in_table_c21_c22(jm jn Mhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21_c22jp tstringprep.in_table_c22(jm jn Ihttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c22jp tstringprep.in_table_c3(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c3jp tstringprep.in_table_c4(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c4jp tstringprep.in_table_c5(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c5jp tstringprep.in_table_c6(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c6jp tstringprep.in_table_c7(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c7jp tstringprep.in_table_c8(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c8jp tstringprep.in_table_c9(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c9jp tstringprep.in_table_d1(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_d1jp tstringprep.in_table_d2(jm jn Hhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_d2jp tstringprep.map_table_b2(jm jn Ihttps://docs.python.org/3/library/stringprep.html#stringprep.map_table_b2jp tstringprep.map_table_b3(jm jn Ihttps://docs.python.org/3/library/stringprep.html#stringprep.map_table_b3jp tstruct.calcsize(jm jn =https://docs.python.org/3/library/struct.html#struct.calcsizejp tstruct.iter_unpack(jm jn @https://docs.python.org/3/library/struct.html#struct.iter_unpackjp t struct.pack(jm jn 9https://docs.python.org/3/library/struct.html#struct.packjp tstruct.pack_into(jm jn >https://docs.python.org/3/library/struct.html#struct.pack_intojp t struct.unpack(jm jn ;https://docs.python.org/3/library/struct.html#struct.unpackjp tstruct.unpack_from(jm jn @https://docs.python.org/3/library/struct.html#struct.unpack_fromjp tsubprocess.call(jm jn Ahttps://docs.python.org/3/library/subprocess.html#subprocess.calljp tsubprocess.check_call(jm jn Ghttps://docs.python.org/3/library/subprocess.html#subprocess.check_calljp tsubprocess.check_output(jm jn Ihttps://docs.python.org/3/library/subprocess.html#subprocess.check_outputjp tsubprocess.getoutput(jm jn Fhttps://docs.python.org/3/library/subprocess.html#subprocess.getoutputjp tsubprocess.getstatusoutput(jm jn Lhttps://docs.python.org/3/library/subprocess.html#subprocess.getstatusoutputjp tsubprocess.run(jm jn @https://docs.python.org/3/library/subprocess.html#subprocess.runjp tsum(jm jn 4https://docs.python.org/3/library/functions.html#sumjp t sunau.open(jm jn 7https://docs.python.org/3/library/sunau.html#sunau.openjp tsymtable.symtable(jm jn Ahttps://docs.python.org/3/library/symtable.html#symtable.symtablejp tsys._clear_type_cache(jm jn @https://docs.python.org/3/library/sys.html#sys._clear_type_cachejp tsys._current_exceptions(jm jn Bhttps://docs.python.org/3/library/sys.html#sys._current_exceptionsjp tsys._current_frames(jm jn >https://docs.python.org/3/library/sys.html#sys._current_framesjp tsys._debugmallocstats(jm jn @https://docs.python.org/3/library/sys.html#sys._debugmallocstatsjp t"sys._enablelegacywindowsfsencoding(jm jn Mhttps://docs.python.org/3/library/sys.html#sys._enablelegacywindowsfsencodingjp t sys._getframe(jm jn 8https://docs.python.org/3/library/sys.html#sys._getframejp tsys.addaudithook(jm jn ;https://docs.python.org/3/library/sys.html#sys.addaudithookjp t sys.audit(jm jn 4https://docs.python.org/3/library/sys.html#sys.auditjp tsys.breakpointhook(jm jn =https://docs.python.org/3/library/sys.html#sys.breakpointhookjp tsys.call_tracing(jm jn ;https://docs.python.org/3/library/sys.html#sys.call_tracingjp tsys.displayhook(jm jn :https://docs.python.org/3/library/sys.html#sys.displayhookjp t sys.exc_info(jm jn 7https://docs.python.org/3/library/sys.html#sys.exc_infojp tsys.excepthook(jm jn 9https://docs.python.org/3/library/sys.html#sys.excepthookjp t sys.exception(jm jn 8https://docs.python.org/3/library/sys.html#sys.exceptionjp tsys.exit(jm jn 3https://docs.python.org/3/library/sys.html#sys.exitjp tsys.get_asyncgen_hooks(jm jn Ahttps://docs.python.org/3/library/sys.html#sys.get_asyncgen_hooksjp t'sys.get_coroutine_origin_tracking_depth(jm jn Rhttps://docs.python.org/3/library/sys.html#sys.get_coroutine_origin_tracking_depthjp tsys.get_int_max_str_digits(jm jn Ehttps://docs.python.org/3/library/sys.html#sys.get_int_max_str_digitsjp tsys.getallocatedblocks(jm jn Ahttps://docs.python.org/3/library/sys.html#sys.getallocatedblocksjp tsys.getandroidapilevel(jm jn Ahttps://docs.python.org/3/library/sys.html#sys.getandroidapileveljp tsys.getdefaultencoding(jm jn Ahttps://docs.python.org/3/library/sys.html#sys.getdefaultencodingjp tsys.getdlopenflags(jm jn =https://docs.python.org/3/library/sys.html#sys.getdlopenflagsjp tsys.getfilesystemencodeerrors(jm jn Hhttps://docs.python.org/3/library/sys.html#sys.getfilesystemencodeerrorsjp tsys.getfilesystemencoding(jm jn Dhttps://docs.python.org/3/library/sys.html#sys.getfilesystemencodingjp tsys.getprofile(jm jn 9https://docs.python.org/3/library/sys.html#sys.getprofilejp tsys.getrecursionlimit(jm jn @https://docs.python.org/3/library/sys.html#sys.getrecursionlimitjp tsys.getrefcount(jm jn :https://docs.python.org/3/library/sys.html#sys.getrefcountjp t sys.getsizeof(jm jn 8https://docs.python.org/3/library/sys.html#sys.getsizeofjp tsys.getswitchinterval(jm jn @https://docs.python.org/3/library/sys.html#sys.getswitchintervaljp t sys.gettrace(jm jn 7https://docs.python.org/3/library/sys.html#sys.gettracejp tsys.getwindowsversion(jm jn @https://docs.python.org/3/library/sys.html#sys.getwindowsversionjp t sys.intern(jm jn 5https://docs.python.org/3/library/sys.html#sys.internjp tsys.is_finalizing(jm jn https://docs.python.org/3/library/tabnanny.html#tabnanny.checkjp ttabnanny.process_tokens(jm jn Ghttps://docs.python.org/3/library/tabnanny.html#tabnanny.process_tokensjp ttarfile.data_filter(jm jn Bhttps://docs.python.org/3/library/tarfile.html#tarfile.data_filterjp ttarfile.fully_trusted_filter(jm jn Khttps://docs.python.org/3/library/tarfile.html#tarfile.fully_trusted_filterjp ttarfile.is_tarfile(jm jn Ahttps://docs.python.org/3/library/tarfile.html#tarfile.is_tarfilejp t tarfile.open(jm jn ;https://docs.python.org/3/library/tarfile.html#tarfile.openjp ttarfile.tar_filter(jm jn Ahttps://docs.python.org/3/library/tarfile.html#tarfile.tar_filterjp ttempfile.NamedTemporaryFile(jm jn Khttps://docs.python.org/3/library/tempfile.html#tempfile.NamedTemporaryFilejp ttempfile.TemporaryFile(jm jn Fhttps://docs.python.org/3/library/tempfile.html#tempfile.TemporaryFilejp ttempfile.gettempdir(jm jn Chttps://docs.python.org/3/library/tempfile.html#tempfile.gettempdirjp ttempfile.gettempdirb(jm jn Dhttps://docs.python.org/3/library/tempfile.html#tempfile.gettempdirbjp ttempfile.gettempprefix(jm jn Fhttps://docs.python.org/3/library/tempfile.html#tempfile.gettempprefixjp ttempfile.gettempprefixb(jm jn Ghttps://docs.python.org/3/library/tempfile.html#tempfile.gettempprefixbjp ttempfile.mkdtemp(jm jn @https://docs.python.org/3/library/tempfile.html#tempfile.mkdtempjp ttempfile.mkstemp(jm jn @https://docs.python.org/3/library/tempfile.html#tempfile.mkstempjp ttempfile.mktemp(jm jn ?https://docs.python.org/3/library/tempfile.html#tempfile.mktempjp ttermios.tcdrain(jm jn >https://docs.python.org/3/library/termios.html#termios.tcdrainjp ttermios.tcflow(jm jn =https://docs.python.org/3/library/termios.html#termios.tcflowjp ttermios.tcflush(jm jn >https://docs.python.org/3/library/termios.html#termios.tcflushjp ttermios.tcgetattr(jm jn @https://docs.python.org/3/library/termios.html#termios.tcgetattrjp ttermios.tcgetwinsize(jm jn Chttps://docs.python.org/3/library/termios.html#termios.tcgetwinsizejp ttermios.tcsendbreak(jm jn Bhttps://docs.python.org/3/library/termios.html#termios.tcsendbreakjp ttermios.tcsetattr(jm jn @https://docs.python.org/3/library/termios.html#termios.tcsetattrjp ttermios.tcsetwinsize(jm jn Chttps://docs.python.org/3/library/termios.html#termios.tcsetwinsizejp t&test.support.adjust_int_max_str_digits(jm jn Rhttps://docs.python.org/3/library/test.html#test.support.adjust_int_max_str_digitsjp ttest.support.anticipate_failure(jm jn Khttps://docs.python.org/3/library/test.html#test.support.anticipate_failurejp t(test.support.args_from_interpreter_flags(jm jn Thttps://docs.python.org/3/library/test.html#test.support.args_from_interpreter_flagsjp ttest.support.bigaddrspacetest(jm jn Ihttps://docs.python.org/3/library/test.html#test.support.bigaddrspacetestjp ttest.support.bigmemtest(jm jn Chttps://docs.python.org/3/library/test.html#test.support.bigmemtestjp ttest.support.calcobjsize(jm jn Dhttps://docs.python.org/3/library/test.html#test.support.calcobjsizejp ttest.support.calcvobjsize(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.calcvobjsizejp ttest.support.captured_stderr(jm jn Hhttps://docs.python.org/3/library/test.html#test.support.captured_stderrjp ttest.support.captured_stdin(jm jn Ghttps://docs.python.org/3/library/test.html#test.support.captured_stdinjp ttest.support.captured_stdout(jm jn Hhttps://docs.python.org/3/library/test.html#test.support.captured_stdoutjp t'test.support.catch_unraisable_exception(jm jn Shttps://docs.python.org/3/library/test.html#test.support.catch_unraisable_exceptionjp ttest.support.check__all__(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.check__all__jp t)test.support.check_disallow_instantiation(jm jn Uhttps://docs.python.org/3/library/test.html#test.support.check_disallow_instantiationjp t'test.support.check_free_after_iterating(jm jn Shttps://docs.python.org/3/library/test.html#test.support.check_free_after_iteratingjp ttest.support.check_impl_detail(jm jn Jhttps://docs.python.org/3/library/test.html#test.support.check_impl_detailjp ttest.support.check_syntax_error(jm jn Khttps://docs.python.org/3/library/test.html#test.support.check_syntax_errorjp ttest.support.checksizeof(jm jn Dhttps://docs.python.org/3/library/test.html#test.support.checksizeofjp ttest.support.cpython_only(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.cpython_onlyjp t test.support.detect_api_mismatch(jm jn Lhttps://docs.python.org/3/library/test.html#test.support.detect_api_mismatchjp t!test.support.disable_faulthandler(jm jn Mhttps://docs.python.org/3/library/test.html#test.support.disable_faulthandlerjp ttest.support.disable_gc(jm jn Chttps://docs.python.org/3/library/test.html#test.support.disable_gcjp ttest.support.findfile(jm jn Ahttps://docs.python.org/3/library/test.html#test.support.findfilejp ttest.support.flush_std_streams(jm jn Jhttps://docs.python.org/3/library/test.html#test.support.flush_std_streamsjp ttest.support.gc_collect(jm jn Chttps://docs.python.org/3/library/test.html#test.support.gc_collectjp ttest.support.get_attribute(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.get_attributejp t test.support.get_original_stdout(jm jn Lhttps://docs.python.org/3/library/test.html#test.support.get_original_stdoutjp ttest.support.impl_detail(jm jn Dhttps://docs.python.org/3/library/test.html#test.support.impl_detailjp t!test.support.import_helper.forget(jm jn Mhttps://docs.python.org/3/library/test.html#test.support.import_helper.forgetjp t.test.support.import_helper.import_fresh_module(jm jn Zhttps://docs.python.org/3/library/test.html#test.support.import_helper.import_fresh_modulejp t(test.support.import_helper.import_module(jm jn Thttps://docs.python.org/3/library/test.html#test.support.import_helper.import_modulejp t*test.support.import_helper.make_legacy_pyc(jm jn Vhttps://docs.python.org/3/library/test.html#test.support.import_helper.make_legacy_pycjp t*test.support.import_helper.modules_cleanup(jm jn Vhttps://docs.python.org/3/library/test.html#test.support.import_helper.modules_cleanupjp t(test.support.import_helper.modules_setup(jm jn Thttps://docs.python.org/3/library/test.html#test.support.import_helper.modules_setupjp t!test.support.import_helper.unload(jm jn Mhttps://docs.python.org/3/library/test.html#test.support.import_helper.unloadjp t test.support.is_resource_enabled(jm jn Lhttps://docs.python.org/3/library/test.html#test.support.is_resource_enabledjp ttest.support.load_package_tests(jm jn Khttps://docs.python.org/3/library/test.html#test.support.load_package_testsjp ttest.support.match_test(jm jn Chttps://docs.python.org/3/library/test.html#test.support.match_testjp t(test.support.missing_compiler_executable(jm jn Thttps://docs.python.org/3/library/test.html#test.support.missing_compiler_executablejp ttest.support.no_tracing(jm jn Chttps://docs.python.org/3/library/test.html#test.support.no_tracingjp ttest.support.open_urlresource(jm jn Ihttps://docs.python.org/3/library/test.html#test.support.open_urlresourcejp t.test.support.optim_args_from_interpreter_flags(jm jn Zhttps://docs.python.org/3/library/test.html#test.support.optim_args_from_interpreter_flagsjp t"test.support.os_helper.can_symlink(jm jn Nhttps://docs.python.org/3/library/test.html#test.support.os_helper.can_symlinkjp t test.support.os_helper.can_xattr(jm jn Lhttps://docs.python.org/3/library/test.html#test.support.os_helper.can_xattrjp t!test.support.os_helper.change_cwd(jm jn Mhttps://docs.python.org/3/library/test.html#test.support.os_helper.change_cwdjp t(test.support.os_helper.create_empty_file(jm jn Thttps://docs.python.org/3/library/test.html#test.support.os_helper.create_empty_filejp ttest.support.os_helper.fd_count(jm jn Khttps://docs.python.org/3/library/test.html#test.support.os_helper.fd_countjp t-test.support.os_helper.fs_is_case_insensitive(jm jn Yhttps://docs.python.org/3/library/test.html#test.support.os_helper.fs_is_case_insensitivejp t"test.support.os_helper.make_bad_fd(jm jn Nhttps://docs.python.org/3/library/test.html#test.support.os_helper.make_bad_fdjp ttest.support.os_helper.rmdir(jm jn Hhttps://docs.python.org/3/library/test.html#test.support.os_helper.rmdirjp ttest.support.os_helper.rmtree(jm jn Ihttps://docs.python.org/3/library/test.html#test.support.os_helper.rmtreejp t*test.support.os_helper.skip_unless_symlink(jm jn Vhttps://docs.python.org/3/library/test.html#test.support.os_helper.skip_unless_symlinkjp t(test.support.os_helper.skip_unless_xattr(jm jn Thttps://docs.python.org/3/library/test.html#test.support.os_helper.skip_unless_xattrjp ttest.support.os_helper.temp_cwd(jm jn Khttps://docs.python.org/3/library/test.html#test.support.os_helper.temp_cwdjp ttest.support.os_helper.temp_dir(jm jn Khttps://docs.python.org/3/library/test.html#test.support.os_helper.temp_dirjp t!test.support.os_helper.temp_umask(jm jn Mhttps://docs.python.org/3/library/test.html#test.support.os_helper.temp_umaskjp ttest.support.os_helper.unlink(jm jn Ihttps://docs.python.org/3/library/test.html#test.support.os_helper.unlinkjp ttest.support.patch(jm jn >https://docs.python.org/3/library/test.html#test.support.patchjp ttest.support.print_warning(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.print_warningjp t test.support.python_is_optimized(jm jn Lhttps://docs.python.org/3/library/test.html#test.support.python_is_optimizedjp ttest.support.reap_children(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.reap_childrenjp t#test.support.record_original_stdout(jm jn Ohttps://docs.python.org/3/library/test.html#test.support.record_original_stdoutjp ttest.support.refcount_test(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.refcount_testjp ttest.support.requires(jm jn Ahttps://docs.python.org/3/library/test.html#test.support.requiresjp ttest.support.requires_IEEE_754(jm jn Jhttps://docs.python.org/3/library/test.html#test.support.requires_IEEE_754jp ttest.support.requires_bz2(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.requires_bz2jp t test.support.requires_docstrings(jm jn Lhttps://docs.python.org/3/library/test.html#test.support.requires_docstringsjp t%test.support.requires_freebsd_version(jm jn Qhttps://docs.python.org/3/library/test.html#test.support.requires_freebsd_versionjp ttest.support.requires_gzip(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.requires_gzipjp t#test.support.requires_linux_version(jm jn Ohttps://docs.python.org/3/library/test.html#test.support.requires_linux_versionjp ttest.support.requires_lzma(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.requires_lzmajp t!test.support.requires_mac_version(jm jn Mhttps://docs.python.org/3/library/test.html#test.support.requires_mac_versionjp ttest.support.requires_resource(jm jn Jhttps://docs.python.org/3/library/test.html#test.support.requires_resourcejp ttest.support.requires_zlib(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.requires_zlibjp ttest.support.run_doctest(jm jn Dhttps://docs.python.org/3/library/test.html#test.support.run_doctestjp ttest.support.run_in_subinterp(jm jn Ihttps://docs.python.org/3/library/test.html#test.support.run_in_subinterpjp ttest.support.run_unittest(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.run_unittestjp ttest.support.run_with_locale(jm jn Hhttps://docs.python.org/3/library/test.html#test.support.run_with_localejp ttest.support.run_with_tz(jm jn Dhttps://docs.python.org/3/library/test.html#test.support.run_with_tzjp t0test.support.script_helper.assert_python_failure(jm jn \https://docs.python.org/3/library/test.html#test.support.script_helper.assert_python_failurejp t+test.support.script_helper.assert_python_ok(jm jn Whttps://docs.python.org/3/library/test.html#test.support.script_helper.assert_python_okjp t;test.support.script_helper.interpreter_requires_environment(jm jn ghttps://docs.python.org/3/library/test.html#test.support.script_helper.interpreter_requires_environmentjp t&test.support.script_helper.kill_python(jm jn Rhttps://docs.python.org/3/library/test.html#test.support.script_helper.kill_pythonjp t#test.support.script_helper.make_pkg(jm jn Ohttps://docs.python.org/3/library/test.html#test.support.script_helper.make_pkgjp t&test.support.script_helper.make_script(jm jn Rhttps://docs.python.org/3/library/test.html#test.support.script_helper.make_scriptjp t'test.support.script_helper.make_zip_pkg(jm jn Shttps://docs.python.org/3/library/test.html#test.support.script_helper.make_zip_pkgjp t*test.support.script_helper.make_zip_script(jm jn Vhttps://docs.python.org/3/library/test.html#test.support.script_helper.make_zip_scriptjp t/test.support.script_helper.run_python_until_end(jm jn [https://docs.python.org/3/library/test.html#test.support.script_helper.run_python_until_endjp t'test.support.script_helper.spawn_python(jm jn Shttps://docs.python.org/3/library/test.html#test.support.script_helper.spawn_pythonjp ttest.support.set_match_tests(jm jn Hhttps://docs.python.org/3/library/test.html#test.support.set_match_testsjp ttest.support.set_memlimit(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.set_memlimitjp ttest.support.setswitchinterval(jm jn Jhttps://docs.python.org/3/library/test.html#test.support.setswitchintervaljp t7test.support.skip_if_broken_multiprocessing_synchronize(jm jn chttps://docs.python.org/3/library/test.html#test.support.skip_if_broken_multiprocessing_synchronizejp t$test.support.socket_helper.bind_port(jm jn Phttps://docs.python.org/3/library/test.html#test.support.socket_helper.bind_portjp t+test.support.socket_helper.bind_unix_socket(jm jn Whttps://docs.python.org/3/library/test.html#test.support.socket_helper.bind_unix_socketjp t+test.support.socket_helper.find_unused_port(jm jn Whttps://docs.python.org/3/library/test.html#test.support.socket_helper.find_unused_portjp t7test.support.socket_helper.skip_unless_bind_unix_socket(jm jn chttps://docs.python.org/3/library/test.html#test.support.socket_helper.skip_unless_bind_unix_socketjp t-test.support.socket_helper.transient_internet(jm jn Yhttps://docs.python.org/3/library/test.html#test.support.socket_helper.transient_internetjp ttest.support.sortdict(jm jn Ahttps://docs.python.org/3/library/test.html#test.support.sortdictjp ttest.support.swap_attr(jm jn Bhttps://docs.python.org/3/library/test.html#test.support.swap_attrjp ttest.support.swap_item(jm jn Bhttps://docs.python.org/3/library/test.html#test.support.swap_itemjp t&test.support.system_must_validate_cert(jm jn Rhttps://docs.python.org/3/library/test.html#test.support.system_must_validate_certjp t7test.support.threading_helper.catch_threading_exception(jm jn chttps://docs.python.org/3/library/test.html#test.support.threading_helper.catch_threading_exceptionjp t)test.support.threading_helper.join_thread(jm jn Uhttps://docs.python.org/3/library/test.html#test.support.threading_helper.join_threadjp t*test.support.threading_helper.reap_threads(jm jn Vhttps://docs.python.org/3/library/test.html#test.support.threading_helper.reap_threadsjp t+test.support.threading_helper.start_threads(jm jn Whttps://docs.python.org/3/library/test.html#test.support.threading_helper.start_threadsjp t/test.support.threading_helper.threading_cleanup(jm jn [https://docs.python.org/3/library/test.html#test.support.threading_helper.threading_cleanupjp t-test.support.threading_helper.threading_setup(jm jn Yhttps://docs.python.org/3/library/test.html#test.support.threading_helper.threading_setupjp t/test.support.threading_helper.wait_threads_exit(jm jn [https://docs.python.org/3/library/test.html#test.support.threading_helper.wait_threads_exitjp ttest.support.wait_process(jm jn Ehttps://docs.python.org/3/library/test.html#test.support.wait_processjp t6test.support.warnings_helper.check_no_resource_warning(jm jn bhttps://docs.python.org/3/library/test.html#test.support.warnings_helper.check_no_resource_warningjp t1test.support.warnings_helper.check_syntax_warning(jm jn ]https://docs.python.org/3/library/test.html#test.support.warnings_helper.check_syntax_warningjp t+test.support.warnings_helper.check_warnings(jm jn Whttps://docs.python.org/3/library/test.html#test.support.warnings_helper.check_warningsjp t,test.support.warnings_helper.ignore_warnings(jm jn Xhttps://docs.python.org/3/library/test.html#test.support.warnings_helper.ignore_warningsjp ttest.support.with_pymalloc(jm jn Fhttps://docs.python.org/3/library/test.html#test.support.with_pymallocjp ttextwrap.dedent(jm jn ?https://docs.python.org/3/library/textwrap.html#textwrap.dedentjp t textwrap.fill(jm jn =https://docs.python.org/3/library/textwrap.html#textwrap.filljp ttextwrap.indent(jm jn ?https://docs.python.org/3/library/textwrap.html#textwrap.indentjp ttextwrap.shorten(jm jn @https://docs.python.org/3/library/textwrap.html#textwrap.shortenjp t textwrap.wrap(jm jn =https://docs.python.org/3/library/textwrap.html#textwrap.wrapjp tthreading.active_count(jm jn Ghttps://docs.python.org/3/library/threading.html#threading.active_countjp tthreading.current_thread(jm jn Ihttps://docs.python.org/3/library/threading.html#threading.current_threadjp tthreading.enumerate(jm jn Dhttps://docs.python.org/3/library/threading.html#threading.enumeratejp tthreading.excepthook(jm jn Ehttps://docs.python.org/3/library/threading.html#threading.excepthookjp tthreading.get_ident(jm jn Dhttps://docs.python.org/3/library/threading.html#threading.get_identjp tthreading.get_native_id(jm jn Hhttps://docs.python.org/3/library/threading.html#threading.get_native_idjp tthreading.getprofile(jm jn Ehttps://docs.python.org/3/library/threading.html#threading.getprofilejp tthreading.gettrace(jm jn Chttps://docs.python.org/3/library/threading.html#threading.gettracejp tthreading.main_thread(jm jn Fhttps://docs.python.org/3/library/threading.html#threading.main_threadjp tthreading.setprofile(jm jn Ehttps://docs.python.org/3/library/threading.html#threading.setprofilejp tthreading.settrace(jm jn Chttps://docs.python.org/3/library/threading.html#threading.settracejp tthreading.stack_size(jm jn Ehttps://docs.python.org/3/library/threading.html#threading.stack_sizejp t time.asctime(jm jn 8https://docs.python.org/3/library/time.html#time.asctimejp ttime.clock_getres(jm jn =https://docs.python.org/3/library/time.html#time.clock_getresjp ttime.clock_gettime(jm jn >https://docs.python.org/3/library/time.html#time.clock_gettimejp ttime.clock_gettime_ns(jm jn Ahttps://docs.python.org/3/library/time.html#time.clock_gettime_nsjp ttime.clock_settime(jm jn >https://docs.python.org/3/library/time.html#time.clock_settimejp ttime.clock_settime_ns(jm jn Ahttps://docs.python.org/3/library/time.html#time.clock_settime_nsjp t time.ctime(jm jn 6https://docs.python.org/3/library/time.html#time.ctimejp ttime.get_clock_info(jm jn ?https://docs.python.org/3/library/time.html#time.get_clock_infojp t time.gmtime(jm jn 7https://docs.python.org/3/library/time.html#time.gmtimejp ttime.localtime(jm jn :https://docs.python.org/3/library/time.html#time.localtimejp t time.mktime(jm jn 7https://docs.python.org/3/library/time.html#time.mktimejp ttime.monotonic(jm jn :https://docs.python.org/3/library/time.html#time.monotonicjp ttime.monotonic_ns(jm jn =https://docs.python.org/3/library/time.html#time.monotonic_nsjp ttime.perf_counter(jm jn =https://docs.python.org/3/library/time.html#time.perf_counterjp ttime.perf_counter_ns(jm jn @https://docs.python.org/3/library/time.html#time.perf_counter_nsjp ttime.process_time(jm jn =https://docs.python.org/3/library/time.html#time.process_timejp ttime.process_time_ns(jm jn @https://docs.python.org/3/library/time.html#time.process_time_nsjp ttime.pthread_getcpuclockid(jm jn Fhttps://docs.python.org/3/library/time.html#time.pthread_getcpuclockidjp t time.sleep(jm jn 6https://docs.python.org/3/library/time.html#time.sleepjp t time.strftime(jm jn 9https://docs.python.org/3/library/time.html#time.strftimejp t time.strptime(jm jn 9https://docs.python.org/3/library/time.html#time.strptimejp ttime.thread_time(jm jn https://docs.python.org/3/library/turtle.html#turtle.colormodejp tturtle.degrees(jm jn https://docs.python.org/3/library/turtle.html#turtle.fillcolorjp tturtle.filling(jm jn https://docs.python.org/3/library/turtle.html#turtle.getcanvasjp t turtle.getpen(jm jn ;https://docs.python.org/3/library/turtle.html#turtle.getpenjp tturtle.getscreen(jm jn >https://docs.python.org/3/library/turtle.html#turtle.getscreenjp tturtle.getshapes(jm jn >https://docs.python.org/3/library/turtle.html#turtle.getshapesjp tturtle.getturtle(jm jn >https://docs.python.org/3/library/turtle.html#turtle.getturtlejp t turtle.goto(jm jn 9https://docs.python.org/3/library/turtle.html#turtle.gotojp tturtle.heading(jm jn https://docs.python.org/3/library/turtle.html#turtle.isvisiblejp t turtle.left(jm jn 9https://docs.python.org/3/library/turtle.html#turtle.leftjp t turtle.listen(jm jn ;https://docs.python.org/3/library/turtle.html#turtle.listenjp t turtle.lt(jm jn 7https://docs.python.org/3/library/turtle.html#turtle.ltjp tturtle.mainloop(jm jn =https://docs.python.org/3/library/turtle.html#turtle.mainloopjp t turtle.mode(jm jn 9https://docs.python.org/3/library/turtle.html#turtle.modejp tturtle.numinput(jm jn =https://docs.python.org/3/library/turtle.html#turtle.numinputjp tturtle.onclick(jm jn https://docs.python.org/3/library/turtle.html#turtle.onreleasejp tturtle.onscreenclick(jm jn Bhttps://docs.python.org/3/library/turtle.html#turtle.onscreenclickjp tturtle.ontimer(jm jn https://docs.python.org/3/library/turtle.html#turtle.shapesizejp tturtle.shapetransform(jm jn Chttps://docs.python.org/3/library/turtle.html#turtle.shapetransformjp tturtle.shearfactor(jm jn @https://docs.python.org/3/library/turtle.html#turtle.shearfactorjp tturtle.showturtle(jm jn ?https://docs.python.org/3/library/turtle.html#turtle.showturtlejp t turtle.speed(jm jn :https://docs.python.org/3/library/turtle.html#turtle.speedjp t turtle.st(jm jn 7https://docs.python.org/3/library/turtle.html#turtle.stjp t turtle.stamp(jm jn :https://docs.python.org/3/library/turtle.html#turtle.stampjp tturtle.textinput(jm jn >https://docs.python.org/3/library/turtle.html#turtle.textinputjp t turtle.tilt(jm jn 9https://docs.python.org/3/library/turtle.html#turtle.tiltjp tturtle.tiltangle(jm jn >https://docs.python.org/3/library/turtle.html#turtle.tiltanglejp t turtle.title(jm jn :https://docs.python.org/3/library/turtle.html#turtle.titlejp tturtle.towards(jm jn https://docs.python.org/3/library/winreg.html#winreg.CreateKeyjp twinreg.CreateKeyEx(jm jn @https://docs.python.org/3/library/winreg.html#winreg.CreateKeyExjp twinreg.DeleteKey(jm jn >https://docs.python.org/3/library/winreg.html#winreg.DeleteKeyjp twinreg.DeleteKeyEx(jm jn @https://docs.python.org/3/library/winreg.html#winreg.DeleteKeyExjp twinreg.DeleteValue(jm jn @https://docs.python.org/3/library/winreg.html#winreg.DeleteValuejp twinreg.DisableReflectionKey(jm jn Ihttps://docs.python.org/3/library/winreg.html#winreg.DisableReflectionKeyjp twinreg.EnableReflectionKey(jm jn Hhttps://docs.python.org/3/library/winreg.html#winreg.EnableReflectionKeyjp twinreg.EnumKey(jm jn https://docs.python.org/3/library/winreg.html#winreg.EnumValuejp twinreg.ExpandEnvironmentStrings(jm jn Mhttps://docs.python.org/3/library/winreg.html#winreg.ExpandEnvironmentStringsjp twinreg.FlushKey(jm jn =https://docs.python.org/3/library/winreg.html#winreg.FlushKeyjp twinreg.LoadKey(jm jn https://docs.python.org/3/library/winreg.html#winreg.OpenKeyExjp twinreg.QueryInfoKey(jm jn Ahttps://docs.python.org/3/library/winreg.html#winreg.QueryInfoKeyjp twinreg.QueryReflectionKey(jm jn Ghttps://docs.python.org/3/library/winreg.html#winreg.QueryReflectionKeyjp twinreg.QueryValue(jm jn ?https://docs.python.org/3/library/winreg.html#winreg.QueryValuejp twinreg.QueryValueEx(jm jn Ahttps://docs.python.org/3/library/winreg.html#winreg.QueryValueExjp twinreg.SaveKey(jm jn https://docs.python.org/3/library/zlib.html#zlib.decompressobjjp tzoneinfo.available_timezones(jm jn Lhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.available_timezonesjp tzoneinfo.reset_tzpath(jm jn Ehttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.reset_tzpathjp tupy:class}(abc.ABC(jm jn 2https://docs.python.org/3/library/abc.html#abc.ABCjp t abc.ABCMeta(jm jn 6https://docs.python.org/3/library/abc.html#abc.ABCMetajp targparse.Action(jm jn ?https://docs.python.org/3/library/argparse.html#argparse.Actionjp t&argparse.ArgumentDefaultsHelpFormatter(jm jn Vhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentDefaultsHelpFormatterjp targparse.ArgumentParser(jm jn Ghttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParserjp targparse.FileType(jm jn Ahttps://docs.python.org/3/library/argparse.html#argparse.FileTypejp t!argparse.MetavarTypeHelpFormatter(jm jn Qhttps://docs.python.org/3/library/argparse.html#argparse.MetavarTypeHelpFormatterjp targparse.Namespace(jm jn Bhttps://docs.python.org/3/library/argparse.html#argparse.Namespacejp t$argparse.RawDescriptionHelpFormatter(jm jn Thttps://docs.python.org/3/library/argparse.html#argparse.RawDescriptionHelpFormatterjp targparse.RawTextHelpFormatter(jm jn Mhttps://docs.python.org/3/library/argparse.html#argparse.RawTextHelpFormatterjp t array.array(jm jn 8https://docs.python.org/3/library/array.html#array.arrayjp tast.AST(jm jn 2https://docs.python.org/3/library/ast.html#ast.ASTjp tast.Add(jm jn 2https://docs.python.org/3/library/ast.html#ast.Addjp tast.And(jm jn 2https://docs.python.org/3/library/ast.html#ast.Andjp t ast.AnnAssign(jm jn 8https://docs.python.org/3/library/ast.html#ast.AnnAssignjp t ast.Assert(jm jn 5https://docs.python.org/3/library/ast.html#ast.Assertjp t ast.Assign(jm jn 5https://docs.python.org/3/library/ast.html#ast.Assignjp t ast.AsyncFor(jm jn 7https://docs.python.org/3/library/ast.html#ast.AsyncForjp tast.AsyncFunctionDef(jm jn ?https://docs.python.org/3/library/ast.html#ast.AsyncFunctionDefjp t ast.AsyncWith(jm jn 8https://docs.python.org/3/library/ast.html#ast.AsyncWithjp t ast.Attribute(jm jn 8https://docs.python.org/3/library/ast.html#ast.Attributejp t ast.AugAssign(jm jn 8https://docs.python.org/3/library/ast.html#ast.AugAssignjp t ast.Await(jm jn 4https://docs.python.org/3/library/ast.html#ast.Awaitjp t ast.BinOp(jm jn 4https://docs.python.org/3/library/ast.html#ast.BinOpjp t ast.BitAnd(jm jn 5https://docs.python.org/3/library/ast.html#ast.BitAndjp t ast.BitOr(jm jn 4https://docs.python.org/3/library/ast.html#ast.BitOrjp t ast.BitXor(jm jn 5https://docs.python.org/3/library/ast.html#ast.BitXorjp t ast.BoolOp(jm jn 5https://docs.python.org/3/library/ast.html#ast.BoolOpjp t ast.Break(jm jn 4https://docs.python.org/3/library/ast.html#ast.Breakjp tast.Call(jm jn 3https://docs.python.org/3/library/ast.html#ast.Calljp t ast.ClassDef(jm jn 7https://docs.python.org/3/library/ast.html#ast.ClassDefjp t ast.Compare(jm jn 6https://docs.python.org/3/library/ast.html#ast.Comparejp t ast.Constant(jm jn 7https://docs.python.org/3/library/ast.html#ast.Constantjp t ast.Continue(jm jn 7https://docs.python.org/3/library/ast.html#ast.Continuejp tast.Del(jm jn 2https://docs.python.org/3/library/ast.html#ast.Deljp t ast.Delete(jm jn 5https://docs.python.org/3/library/ast.html#ast.Deletejp tast.Dict(jm jn 3https://docs.python.org/3/library/ast.html#ast.Dictjp t ast.DictComp(jm jn 7https://docs.python.org/3/library/ast.html#ast.DictCompjp tast.Div(jm jn 2https://docs.python.org/3/library/ast.html#ast.Divjp tast.Eq(jm jn 1https://docs.python.org/3/library/ast.html#ast.Eqjp tast.ExceptHandler(jm jn https://docs.python.org/3/library/ast.html#ast.NodeTransformerjp tast.NodeVisitor(jm jn :https://docs.python.org/3/library/ast.html#ast.NodeVisitorjp t ast.Nonlocal(jm jn 7https://docs.python.org/3/library/ast.html#ast.Nonlocaljp tast.Not(jm jn 2https://docs.python.org/3/library/ast.html#ast.Notjp t ast.NotEq(jm jn 4https://docs.python.org/3/library/ast.html#ast.NotEqjp t ast.NotIn(jm jn 4https://docs.python.org/3/library/ast.html#ast.NotInjp tast.Or(jm jn 1https://docs.python.org/3/library/ast.html#ast.Orjp tast.Pass(jm jn 3https://docs.python.org/3/library/ast.html#ast.Passjp tast.Pow(jm jn 2https://docs.python.org/3/library/ast.html#ast.Powjp t ast.RShift(jm jn 5https://docs.python.org/3/library/ast.html#ast.RShiftjp t ast.Raise(jm jn 4https://docs.python.org/3/library/ast.html#ast.Raisejp t ast.Return(jm jn 5https://docs.python.org/3/library/ast.html#ast.Returnjp tast.Set(jm jn 2https://docs.python.org/3/library/ast.html#ast.Setjp t ast.SetComp(jm jn 6https://docs.python.org/3/library/ast.html#ast.SetCompjp t ast.Slice(jm jn 4https://docs.python.org/3/library/ast.html#ast.Slicejp t ast.Starred(jm jn 6https://docs.python.org/3/library/ast.html#ast.Starredjp t ast.Store(jm jn 4https://docs.python.org/3/library/ast.html#ast.Storejp tast.Sub(jm jn 2https://docs.python.org/3/library/ast.html#ast.Subjp t ast.Subscript(jm jn 8https://docs.python.org/3/library/ast.html#ast.Subscriptjp tast.Try(jm jn 2https://docs.python.org/3/library/ast.html#ast.Tryjp t ast.TryStar(jm jn 6https://docs.python.org/3/library/ast.html#ast.TryStarjp t ast.Tuple(jm jn 4https://docs.python.org/3/library/ast.html#ast.Tuplejp tast.UAdd(jm jn 3https://docs.python.org/3/library/ast.html#ast.UAddjp tast.USub(jm jn 3https://docs.python.org/3/library/ast.html#ast.USubjp t ast.UnaryOp(jm jn 6https://docs.python.org/3/library/ast.html#ast.UnaryOpjp t ast.While(jm jn 4https://docs.python.org/3/library/ast.html#ast.Whilejp tast.With(jm jn 3https://docs.python.org/3/library/ast.html#ast.Withjp t ast.Yield(jm jn 4https://docs.python.org/3/library/ast.html#ast.Yieldjp t ast.YieldFrom(jm jn 8https://docs.python.org/3/library/ast.html#ast.YieldFromjp t ast.alias(jm jn 4https://docs.python.org/3/library/ast.html#ast.aliasjp tast.arg(jm jn 2https://docs.python.org/3/library/ast.html#ast.argjp t ast.arguments(jm jn 8https://docs.python.org/3/library/ast.html#ast.argumentsjp tast.comprehension(jm jn https://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressorjp t bz2.BZ2File(jm jn 6https://docs.python.org/3/library/bz2.html#bz2.BZ2Filejp tcalendar.Calendar(jm jn Ahttps://docs.python.org/3/library/calendar.html#calendar.Calendarjp tcalendar.HTMLCalendar(jm jn Ehttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendarjp tcalendar.LocaleHTMLCalendar(jm jn Khttps://docs.python.org/3/library/calendar.html#calendar.LocaleHTMLCalendarjp tcalendar.LocaleTextCalendar(jm jn Khttps://docs.python.org/3/library/calendar.html#calendar.LocaleTextCalendarjp tcalendar.TextCalendar(jm jn Ehttps://docs.python.org/3/library/calendar.html#calendar.TextCalendarjp t chunk.Chunk(jm jn 8https://docs.python.org/3/library/chunk.html#chunk.Chunkjp tclinic.CConverter(jm jn =https://docs.python.org/3/howto/clinic.html#clinic.CConverterjp tcmd.Cmd(jm jn 2https://docs.python.org/3/library/cmd.html#cmd.Cmdjp tcode.InteractiveConsole(jm jn Chttps://docs.python.org/3/library/code.html#code.InteractiveConsolejp tcode.InteractiveInterpreter(jm jn Ghttps://docs.python.org/3/library/code.html#code.InteractiveInterpreterjp tcodecs.CodecInfo(jm jn >https://docs.python.org/3/library/codecs.html#codecs.CodecInfojp tcodecs.IncrementalDecoder(jm jn Ghttps://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoderjp tcodecs.IncrementalEncoder(jm jn Ghttps://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoderjp tcodecs.StreamReader(jm jn Ahttps://docs.python.org/3/library/codecs.html#codecs.StreamReaderjp tcodecs.StreamReaderWriter(jm jn Ghttps://docs.python.org/3/library/codecs.html#codecs.StreamReaderWriterjp tcodecs.StreamRecoder(jm jn Bhttps://docs.python.org/3/library/codecs.html#codecs.StreamRecoderjp tcodecs.StreamWriter(jm jn Ahttps://docs.python.org/3/library/codecs.html#codecs.StreamWriterjp tcodeop.CommandCompiler(jm jn Dhttps://docs.python.org/3/library/codeop.html#codeop.CommandCompilerjp tcodeop.Compile(jm jn https://docs.python.org/3/library/ctypes.html#ctypes.Structurejp t ctypes.Union(jm jn :https://docs.python.org/3/library/ctypes.html#ctypes.Unionjp t ctypes.WinDLL(jm jn ;https://docs.python.org/3/library/ctypes.html#ctypes.WinDLLjp t ctypes._CData(jm jn ;https://docs.python.org/3/library/ctypes.html#ctypes._CDatajp tctypes._FuncPtr(jm jn =https://docs.python.org/3/library/ctypes.html#ctypes._FuncPtrjp tctypes._Pointer(jm jn =https://docs.python.org/3/library/ctypes.html#ctypes._Pointerjp tctypes._SimpleCData(jm jn Ahttps://docs.python.org/3/library/ctypes.html#ctypes._SimpleCDatajp t ctypes.c_bool(jm jn ;https://docs.python.org/3/library/ctypes.html#ctypes.c_booljp t ctypes.c_byte(jm jn ;https://docs.python.org/3/library/ctypes.html#ctypes.c_bytejp t ctypes.c_char(jm jn ;https://docs.python.org/3/library/ctypes.html#ctypes.c_charjp tctypes.c_char_p(jm jn =https://docs.python.org/3/library/ctypes.html#ctypes.c_char_pjp tctypes.c_double(jm jn =https://docs.python.org/3/library/ctypes.html#ctypes.c_doublejp tctypes.c_float(jm jn https://docs.python.org/3/library/ctypes.html#ctypes.c_ssize_tjp tctypes.c_ubyte(jm jn https://docs.python.org/3/library/ctypes.html#ctypes.c_wchar_pjp tctypes.py_object(jm jn >https://docs.python.org/3/library/ctypes.html#ctypes.py_objectjp tcurses.textpad.Textbox(jm jn Dhttps://docs.python.org/3/library/curses.html#curses.textpad.Textboxjp tdataclasses.Field(jm jn Dhttps://docs.python.org/3/library/dataclasses.html#dataclasses.Fieldjp t datetime.date(jm jn =https://docs.python.org/3/library/datetime.html#datetime.datejp tdatetime.datetime(jm jn Ahttps://docs.python.org/3/library/datetime.html#datetime.datetimejp t datetime.time(jm jn =https://docs.python.org/3/library/datetime.html#datetime.timejp tdatetime.timedelta(jm jn Bhttps://docs.python.org/3/library/datetime.html#datetime.timedeltajp tdatetime.timezone(jm jn Ahttps://docs.python.org/3/library/datetime.html#datetime.timezonejp tdatetime.tzinfo(jm jn ?https://docs.python.org/3/library/datetime.html#datetime.tzinfojp tdecimal.BasicContext(jm jn Chttps://docs.python.org/3/library/decimal.html#decimal.BasicContextjp tdecimal.Clamped(jm jn >https://docs.python.org/3/library/decimal.html#decimal.Clampedjp tdecimal.Context(jm jn >https://docs.python.org/3/library/decimal.html#decimal.Contextjp tdecimal.Decimal(jm jn >https://docs.python.org/3/library/decimal.html#decimal.Decimaljp tdecimal.DecimalException(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.DecimalExceptionjp tdecimal.DefaultContext(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.DefaultContextjp tdecimal.DivisionByZero(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.DivisionByZerojp tdecimal.ExtendedContext(jm jn Fhttps://docs.python.org/3/library/decimal.html#decimal.ExtendedContextjp tdecimal.FloatOperation(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal.FloatOperationjp tdecimal.Inexact(jm jn >https://docs.python.org/3/library/decimal.html#decimal.Inexactjp tdecimal.InvalidOperation(jm jn Ghttps://docs.python.org/3/library/decimal.html#decimal.InvalidOperationjp tdecimal.Overflow(jm jn ?https://docs.python.org/3/library/decimal.html#decimal.Overflowjp tdecimal.Rounded(jm jn >https://docs.python.org/3/library/decimal.html#decimal.Roundedjp tdecimal.Subnormal(jm jn @https://docs.python.org/3/library/decimal.html#decimal.Subnormaljp tdecimal.Underflow(jm jn @https://docs.python.org/3/library/decimal.html#decimal.Underflowjp tdict(jm jn 4https://docs.python.org/3/library/stdtypes.html#dictjp tdifflib.Differ(jm jn =https://docs.python.org/3/library/difflib.html#difflib.Differjp tdifflib.HtmlDiff(jm jn ?https://docs.python.org/3/library/difflib.html#difflib.HtmlDiffjp tdifflib.SequenceMatcher(jm jn Fhttps://docs.python.org/3/library/difflib.html#difflib.SequenceMatcherjp t dis.Bytecode(jm jn 7https://docs.python.org/3/library/dis.html#dis.Bytecodejp tdis.Instruction(jm jn :https://docs.python.org/3/library/dis.html#dis.Instructionjp t dis.Positions(jm jn 8https://docs.python.org/3/library/dis.html#dis.Positionsjp tdistutils.ccompiler.CCompiler(jm jn Mhttps://docs.python.org/3/distutils/apiref.html#distutils.ccompiler.CCompilerjp tdistutils.cmd.Command(jm jn Ehttps://docs.python.org/3/distutils/apiref.html#distutils.cmd.Commandjp t#distutils.command.build_py.build_py(jm jn Shttps://docs.python.org/3/distutils/apiref.html#distutils.command.build_py.build_pyjp t(distutils.command.build_py.build_py_2to3(jm jn Xhttps://docs.python.org/3/distutils/apiref.html#distutils.command.build_py.build_py_2to3jp tdistutils.core.Command(jm jn Fhttps://docs.python.org/3/distutils/apiref.html#distutils.core.Commandjp tdistutils.core.Distribution(jm jn Khttps://docs.python.org/3/distutils/apiref.html#distutils.core.Distributionjp tdistutils.core.Extension(jm jn Hhttps://docs.python.org/3/distutils/apiref.html#distutils.core.Extensionjp t"distutils.fancy_getopt.FancyGetopt(jm jn Rhttps://docs.python.org/3/distutils/apiref.html#distutils.fancy_getopt.FancyGetoptjp tdistutils.text_file.TextFile(jm jn Lhttps://docs.python.org/3/distutils/apiref.html#distutils.text_file.TextFilejp tdoctest.DebugRunner(jm jn Bhttps://docs.python.org/3/library/doctest.html#doctest.DebugRunnerjp tdoctest.DocTest(jm jn >https://docs.python.org/3/library/doctest.html#doctest.DocTestjp tdoctest.DocTestFinder(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest.DocTestFinderjp tdoctest.DocTestParser(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest.DocTestParserjp tdoctest.DocTestRunner(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest.DocTestRunnerjp tdoctest.Example(jm jn >https://docs.python.org/3/library/doctest.html#doctest.Examplejp tdoctest.OutputChecker(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest.OutputCheckerjp temail.charset.Charset(jm jn Jhttps://docs.python.org/3/library/email.charset.html#email.charset.Charsetjp t#email.contentmanager.ContentManager(jm jn _https://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManagerjp temail.generator.BytesGenerator(jm jn Uhttps://docs.python.org/3/library/email.generator.html#email.generator.BytesGeneratorjp t email.generator.DecodedGenerator(jm jn Whttps://docs.python.org/3/library/email.generator.html#email.generator.DecodedGeneratorjp temail.generator.Generator(jm jn Phttps://docs.python.org/3/library/email.generator.html#email.generator.Generatorjp temail.header.Header(jm jn Ghttps://docs.python.org/3/library/email.header.html#email.header.Headerjp temail.headerregistry.Address(jm jn Xhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Addressjp t"email.headerregistry.AddressHeader(jm jn ^https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeaderjp temail.headerregistry.BaseHeader(jm jn [https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeaderjp t-email.headerregistry.ContentDispositionHeader(jm jn ihttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentDispositionHeaderjp t,email.headerregistry.ContentTransferEncoding(jm jn hhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTransferEncodingjp t&email.headerregistry.ContentTypeHeader(jm jn bhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeaderjp temail.headerregistry.DateHeader(jm jn [https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.DateHeaderjp temail.headerregistry.Group(jm jn Vhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Groupjp t#email.headerregistry.HeaderRegistry(jm jn _https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistryjp t&email.headerregistry.MIMEVersionHeader(jm jn bhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeaderjp t,email.headerregistry.ParameterizedMIMEHeader(jm jn hhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ParameterizedMIMEHeaderjp t(email.headerregistry.SingleAddressHeader(jm jn dhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.SingleAddressHeaderjp t'email.headerregistry.UnstructuredHeader(jm jn chttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.UnstructuredHeaderjp temail.message.EmailMessage(jm jn Ohttps://docs.python.org/3/library/email.message.html#email.message.EmailMessagejp temail.message.MIMEPart(jm jn Khttps://docs.python.org/3/library/email.message.html#email.message.MIMEPartjp temail.message.Message(jm jn Shttps://docs.python.org/3/library/email.compat32-message.html#email.message.Messagejp t&email.mime.application.MIMEApplication(jm jn Xhttps://docs.python.org/3/library/email.mime.html#email.mime.application.MIMEApplicationjp temail.mime.audio.MIMEAudio(jm jn Lhttps://docs.python.org/3/library/email.mime.html#email.mime.audio.MIMEAudiojp temail.mime.base.MIMEBase(jm jn Jhttps://docs.python.org/3/library/email.mime.html#email.mime.base.MIMEBasejp temail.mime.image.MIMEImage(jm jn Lhttps://docs.python.org/3/library/email.mime.html#email.mime.image.MIMEImagejp temail.mime.message.MIMEMessage(jm jn Phttps://docs.python.org/3/library/email.mime.html#email.mime.message.MIMEMessagejp t"email.mime.multipart.MIMEMultipart(jm jn Thttps://docs.python.org/3/library/email.mime.html#email.mime.multipart.MIMEMultipartjp t(email.mime.nonmultipart.MIMENonMultipart(jm jn Zhttps://docs.python.org/3/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipartjp temail.mime.text.MIMEText(jm jn Jhttps://docs.python.org/3/library/email.mime.html#email.mime.text.MIMETextjp temail.parser.BytesFeedParser(jm jn Phttps://docs.python.org/3/library/email.parser.html#email.parser.BytesFeedParserjp temail.parser.BytesHeaderParser(jm jn Rhttps://docs.python.org/3/library/email.parser.html#email.parser.BytesHeaderParserjp temail.parser.BytesParser(jm jn Lhttps://docs.python.org/3/library/email.parser.html#email.parser.BytesParserjp temail.parser.FeedParser(jm jn Khttps://docs.python.org/3/library/email.parser.html#email.parser.FeedParserjp temail.parser.HeaderParser(jm jn Mhttps://docs.python.org/3/library/email.parser.html#email.parser.HeaderParserjp temail.parser.Parser(jm jn Ghttps://docs.python.org/3/library/email.parser.html#email.parser.Parserjp temail.policy.Compat32(jm jn Ihttps://docs.python.org/3/library/email.policy.html#email.policy.Compat32jp temail.policy.EmailPolicy(jm jn Lhttps://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicyjp temail.policy.Policy(jm jn Ghttps://docs.python.org/3/library/email.policy.html#email.policy.Policyjp t enum.Enum(jm jn 5https://docs.python.org/3/library/enum.html#enum.Enumjp tenum.EnumCheck(jm jn :https://docs.python.org/3/library/enum.html#enum.EnumCheckjp t enum.EnumType(jm jn 9https://docs.python.org/3/library/enum.html#enum.EnumTypejp t enum.Flag(jm jn 5https://docs.python.org/3/library/enum.html#enum.Flagjp tenum.FlagBoundary(jm jn =https://docs.python.org/3/library/enum.html#enum.FlagBoundaryjp t enum.IntEnum(jm jn 8https://docs.python.org/3/library/enum.html#enum.IntEnumjp t enum.IntFlag(jm jn 8https://docs.python.org/3/library/enum.html#enum.IntFlagjp t enum.ReprEnum(jm jn 9https://docs.python.org/3/library/enum.html#enum.ReprEnumjp t enum.StrEnum(jm jn 8https://docs.python.org/3/library/enum.html#enum.StrEnumjp t enum.auto(jm jn 5https://docs.python.org/3/library/enum.html#enum.autojp tfilecmp.dircmp(jm jn =https://docs.python.org/3/library/filecmp.html#filecmp.dircmpjp tfileinput.FileInput(jm jn Dhttps://docs.python.org/3/library/fileinput.html#fileinput.FileInputjp tfloat(jm jn 6https://docs.python.org/3/library/functions.html#floatjp tfractions.Fraction(jm jn Chttps://docs.python.org/3/library/fractions.html#fractions.Fractionjp t frozenset(jm jn 9https://docs.python.org/3/library/stdtypes.html#frozensetjp t ftplib.FTP(jm jn 8https://docs.python.org/3/library/ftplib.html#ftplib.FTPjp tftplib.FTP_TLS(jm jn https://docs.python.org/3/library/logging.html#logging.Handlerjp tlogging.LogRecord(jm jn @https://docs.python.org/3/library/logging.html#logging.LogRecordjp tlogging.Logger(jm jn =https://docs.python.org/3/library/logging.html#logging.Loggerjp tlogging.LoggerAdapter(jm jn Dhttps://docs.python.org/3/library/logging.html#logging.LoggerAdapterjp tlogging.NullHandler(jm jn Khttps://docs.python.org/3/library/logging.handlers.html#logging.NullHandlerjp tlogging.StreamHandler(jm jn Mhttps://docs.python.org/3/library/logging.handlers.html#logging.StreamHandlerjp t$logging.handlers.BaseRotatingHandler(jm jn \https://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandlerjp t!logging.handlers.BufferingHandler(jm jn Yhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandlerjp t logging.handlers.DatagramHandler(jm jn Xhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandlerjp tlogging.handlers.HTTPHandler(jm jn Thttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.HTTPHandlerjp tlogging.handlers.MemoryHandler(jm jn Vhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandlerjp t"logging.handlers.NTEventLogHandler(jm jn Zhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandlerjp tlogging.handlers.QueueHandler(jm jn Uhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandlerjp tlogging.handlers.QueueListener(jm jn Vhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListenerjp t$logging.handlers.RotatingFileHandler(jm jn \https://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandlerjp tlogging.handlers.SMTPHandler(jm jn Thttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandlerjp tlogging.handlers.SocketHandler(jm jn Vhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandlerjp tlogging.handlers.SysLogHandler(jm jn Vhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandlerjp t)logging.handlers.TimedRotatingFileHandler(jm jn ahttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandlerjp t#logging.handlers.WatchedFileHandler(jm jn [https://docs.python.org/3/library/logging.handlers.html#logging.handlers.WatchedFileHandlerjp tlzma.LZMACompressor(jm jn ?https://docs.python.org/3/library/lzma.html#lzma.LZMACompressorjp tlzma.LZMADecompressor(jm jn Ahttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressorjp t lzma.LZMAFile(jm jn 9https://docs.python.org/3/library/lzma.html#lzma.LZMAFilejp t mailbox.Babyl(jm jn https://docs.python.org/3/library/mailbox.html#mailbox.Mailboxjp tmailbox.Maildir(jm jn >https://docs.python.org/3/library/mailbox.html#mailbox.Maildirjp tmailbox.MaildirMessage(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessagejp tmailbox.Message(jm jn >https://docs.python.org/3/library/mailbox.html#mailbox.Messagejp t mailbox.mbox(jm jn ;https://docs.python.org/3/library/mailbox.html#mailbox.mboxjp tmailbox.mboxMessage(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessagejp t memoryview(jm jn :https://docs.python.org/3/library/stdtypes.html#memoryviewjp tmimetypes.MimeTypes(jm jn Dhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypesjp t mmap.mmap(jm jn 5https://docs.python.org/3/library/mmap.html#mmap.mmapjp tmodulefinder.ModuleFinder(jm jn Mhttps://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinderjp t msilib.Binary(jm jn ;https://docs.python.org/3/library/msilib.html#msilib.Binaryjp t msilib.CAB(jm jn 8https://docs.python.org/3/library/msilib.html#msilib.CABjp tmsilib.Control(jm jn https://docs.python.org/3/library/msilib.html#msilib.Directoryjp tmsilib.Feature(jm jn https://docs.python.org/3/library/numbers.html#numbers.Complexjp tnumbers.Integral(jm jn ?https://docs.python.org/3/library/numbers.html#numbers.Integraljp tnumbers.Number(jm jn =https://docs.python.org/3/library/numbers.html#numbers.Numberjp tnumbers.Rational(jm jn ?https://docs.python.org/3/library/numbers.html#numbers.Rationaljp t numbers.Real(jm jn ;https://docs.python.org/3/library/numbers.html#numbers.Realjp tobject(jm jn 7https://docs.python.org/3/library/functions.html#objectjp toptparse.Option(jm jn ?https://docs.python.org/3/library/optparse.html#optparse.Optionjp toptparse.OptionGroup(jm jn Dhttps://docs.python.org/3/library/optparse.html#optparse.OptionGroupjp toptparse.OptionParser(jm jn Ehttps://docs.python.org/3/library/optparse.html#optparse.OptionParserjp toptparse.Values(jm jn ?https://docs.python.org/3/library/optparse.html#optparse.Valuesjp t os.DirEntry(jm jn 5https://docs.python.org/3/library/os.html#os.DirEntryjp t os.PathLike(jm jn 5https://docs.python.org/3/library/os.html#os.PathLikejp tos.sched_param(jm jn 8https://docs.python.org/3/library/os.html#os.sched_paramjp tos.stat_result(jm jn 8https://docs.python.org/3/library/os.html#os.stat_resultjp tos.terminal_size(jm jn :https://docs.python.org/3/library/os.html#os.terminal_sizejp t pathlib.Path(jm jn ;https://docs.python.org/3/library/pathlib.html#pathlib.Pathjp tpathlib.PosixPath(jm jn @https://docs.python.org/3/library/pathlib.html#pathlib.PosixPathjp tpathlib.PurePath(jm jn ?https://docs.python.org/3/library/pathlib.html#pathlib.PurePathjp tpathlib.PurePosixPath(jm jn Dhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePosixPathjp tpathlib.PureWindowsPath(jm jn Fhttps://docs.python.org/3/library/pathlib.html#pathlib.PureWindowsPathjp tpathlib.WindowsPath(jm jn Bhttps://docs.python.org/3/library/pathlib.html#pathlib.WindowsPathjp tpdb.Pdb(jm jn 2https://docs.python.org/3/library/pdb.html#pdb.Pdbjp tpickle.PickleBuffer(jm jn Ahttps://docs.python.org/3/library/pickle.html#pickle.PickleBufferjp tpickle.Pickler(jm jn https://docs.python.org/3/library/pickle.html#pickle.Unpicklerjp tpipes.Template(jm jn ;https://docs.python.org/3/library/pipes.html#pipes.Templatejp tpkgutil.ImpImporter(jm jn Bhttps://docs.python.org/3/library/pkgutil.html#pkgutil.ImpImporterjp tpkgutil.ImpLoader(jm jn @https://docs.python.org/3/library/pkgutil.html#pkgutil.ImpLoaderjp tpkgutil.ModuleInfo(jm jn Ahttps://docs.python.org/3/library/pkgutil.html#pkgutil.ModuleInfojp t plistlib.UID(jm jn https://docs.python.org/3/library/profile.html#profile.Profilejp tproperty(jm jn 9https://docs.python.org/3/library/functions.html#propertyjp t pstats.Stats(jm jn ;https://docs.python.org/3/library/profile.html#pstats.Statsjp tpy_compile.PycInvalidationMode(jm jn Phttps://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationModejp tqueue.LifoQueue(jm jn https://docs.python.org/3/library/queue.html#queue.SimpleQueuejp t random.Random(jm jn ;https://docs.python.org/3/library/random.html#random.Randomjp trandom.SystemRandom(jm jn Ahttps://docs.python.org/3/library/random.html#random.SystemRandomjp trange(jm jn 5https://docs.python.org/3/library/stdtypes.html#rangejp t re.RegexFlag(jm jn 6https://docs.python.org/3/library/re.html#re.RegexFlagjp t reprlib.Repr(jm jn ;https://docs.python.org/3/library/reprlib.html#reprlib.Reprjp tsched.scheduler(jm jn https://docs.python.org/3/library/smtpd.html#smtpd.SMTPChanneljp tsmtpd.SMTPServer(jm jn =https://docs.python.org/3/library/smtpd.html#smtpd.SMTPServerjp t smtplib.LMTP(jm jn ;https://docs.python.org/3/library/smtplib.html#smtplib.LMTPjp t smtplib.SMTP(jm jn ;https://docs.python.org/3/library/smtplib.html#smtplib.SMTPjp tsmtplib.SMTP_SSL(jm jn ?https://docs.python.org/3/library/smtplib.html#smtplib.SMTP_SSLjp t socket.socket(jm jn ;https://docs.python.org/3/library/socket.html#socket.socketjp tsocketserver.BaseRequestHandler(jm jn Shttps://docs.python.org/3/library/socketserver.html#socketserver.BaseRequestHandlerjp tsocketserver.BaseServer(jm jn Khttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServerjp t#socketserver.DatagramRequestHandler(jm jn Whttps://docs.python.org/3/library/socketserver.html#socketserver.DatagramRequestHandlerjp tsocketserver.ForkingMixIn(jm jn Mhttps://docs.python.org/3/library/socketserver.html#socketserver.ForkingMixInjp tsocketserver.ForkingTCPServer(jm jn Qhttps://docs.python.org/3/library/socketserver.html#socketserver.ForkingTCPServerjp tsocketserver.ForkingUDPServer(jm jn Qhttps://docs.python.org/3/library/socketserver.html#socketserver.ForkingUDPServerjp t!socketserver.StreamRequestHandler(jm jn Uhttps://docs.python.org/3/library/socketserver.html#socketserver.StreamRequestHandlerjp tsocketserver.TCPServer(jm jn Jhttps://docs.python.org/3/library/socketserver.html#socketserver.TCPServerjp tsocketserver.ThreadingMixIn(jm jn Ohttps://docs.python.org/3/library/socketserver.html#socketserver.ThreadingMixInjp tsocketserver.ThreadingTCPServer(jm jn Shttps://docs.python.org/3/library/socketserver.html#socketserver.ThreadingTCPServerjp tsocketserver.ThreadingUDPServer(jm jn Shttps://docs.python.org/3/library/socketserver.html#socketserver.ThreadingUDPServerjp tsocketserver.UDPServer(jm jn Jhttps://docs.python.org/3/library/socketserver.html#socketserver.UDPServerjp tsocketserver.UnixDatagramServer(jm jn Shttps://docs.python.org/3/library/socketserver.html#socketserver.UnixDatagramServerjp tsocketserver.UnixStreamServer(jm jn Qhttps://docs.python.org/3/library/socketserver.html#socketserver.UnixStreamServerjp t sqlite3.Blob(jm jn ;https://docs.python.org/3/library/sqlite3.html#sqlite3.Blobjp tsqlite3.Connection(jm jn Ahttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connectionjp tsqlite3.Cursor(jm jn =https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursorjp tsqlite3.PrepareProtocol(jm jn Fhttps://docs.python.org/3/library/sqlite3.html#sqlite3.PrepareProtocoljp t sqlite3.Row(jm jn :https://docs.python.org/3/library/sqlite3.html#sqlite3.Rowjp tssl.AlertDescription(jm jn ?https://docs.python.org/3/library/ssl.html#ssl.AlertDescriptionjp t ssl.MemoryBIO(jm jn 8https://docs.python.org/3/library/ssl.html#ssl.MemoryBIOjp t ssl.Options(jm jn 6https://docs.python.org/3/library/ssl.html#ssl.Optionsjp tssl.SSLContext(jm jn 9https://docs.python.org/3/library/ssl.html#ssl.SSLContextjp tssl.SSLErrorNumber(jm jn =https://docs.python.org/3/library/ssl.html#ssl.SSLErrorNumberjp t ssl.SSLObject(jm jn 8https://docs.python.org/3/library/ssl.html#ssl.SSLObjectjp tssl.SSLSession(jm jn 9https://docs.python.org/3/library/ssl.html#ssl.SSLSessionjp t ssl.SSLSocket(jm jn 8https://docs.python.org/3/library/ssl.html#ssl.SSLSocketjp tssl.TLSVersion(jm jn 9https://docs.python.org/3/library/ssl.html#ssl.TLSVersionjp tssl.VerifyFlags(jm jn :https://docs.python.org/3/library/ssl.html#ssl.VerifyFlagsjp tssl.VerifyMode(jm jn 9https://docs.python.org/3/library/ssl.html#ssl.VerifyModejp tstatistics.NormalDist(jm jn Ghttps://docs.python.org/3/library/statistics.html#statistics.NormalDistjp tstr(jm jn 3https://docs.python.org/3/library/stdtypes.html#strjp tstring.Formatter(jm jn >https://docs.python.org/3/library/string.html#string.Formatterjp tstring.Template(jm jn =https://docs.python.org/3/library/string.html#string.Templatejp t struct.Struct(jm jn ;https://docs.python.org/3/library/struct.html#struct.Structjp tsubprocess.CompletedProcess(jm jn Mhttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcessjp tsubprocess.Popen(jm jn Bhttps://docs.python.org/3/library/subprocess.html#subprocess.Popenjp tsubprocess.STARTUPINFO(jm jn Hhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFOjp tsuper(jm jn 6https://docs.python.org/3/library/functions.html#superjp tsymtable.Class(jm jn >https://docs.python.org/3/library/symtable.html#symtable.Classjp tsymtable.Function(jm jn Ahttps://docs.python.org/3/library/symtable.html#symtable.Functionjp tsymtable.Symbol(jm jn ?https://docs.python.org/3/library/symtable.html#symtable.Symboljp tsymtable.SymbolTable(jm jn Dhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTablejp ttarfile.TarFile(jm jn >https://docs.python.org/3/library/tarfile.html#tarfile.TarFilejp ttarfile.TarInfo(jm jn >https://docs.python.org/3/library/tarfile.html#tarfile.TarInfojp ttelnetlib.Telnet(jm jn Ahttps://docs.python.org/3/library/telnetlib.html#telnetlib.Telnetjp ttempfile.SpooledTemporaryFile(jm jn Mhttps://docs.python.org/3/library/tempfile.html#tempfile.SpooledTemporaryFilejp ttempfile.TemporaryDirectory(jm jn Khttps://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectoryjp ttest.support.BasicTestRunner(jm jn Hhttps://docs.python.org/3/library/test.html#test.support.BasicTestRunnerjp ttest.support.Matcher(jm jn @https://docs.python.org/3/library/test.html#test.support.Matcherjp ttest.support.SaveSignals(jm jn Dhttps://docs.python.org/3/library/test.html#test.support.SaveSignalsjp t test.support.SuppressCrashReport(jm jn Lhttps://docs.python.org/3/library/test.html#test.support.SuppressCrashReportjp t-test.support.bytecode_helper.BytecodeTestCase(jm jn Yhttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCasejp t&test.support.import_helper.CleanImport(jm jn Rhttps://docs.python.org/3/library/test.html#test.support.import_helper.CleanImportjp t(test.support.import_helper.DirsOnSysPath(jm jn Thttps://docs.python.org/3/library/test.html#test.support.import_helper.DirsOnSysPathjp t*test.support.os_helper.EnvironmentVarGuard(jm jn Vhttps://docs.python.org/3/library/test.html#test.support.os_helper.EnvironmentVarGuardjp ttest.support.os_helper.FakePath(jm jn Khttps://docs.python.org/3/library/test.html#test.support.os_helper.FakePathjp t-test.support.warnings_helper.WarningsRecorder(jm jn Yhttps://docs.python.org/3/library/test.html#test.support.warnings_helper.WarningsRecorderjp ttextwrap.TextWrapper(jm jn Dhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapperjp tthreading.Barrier(jm jn Bhttps://docs.python.org/3/library/threading.html#threading.Barrierjp tthreading.BoundedSemaphore(jm jn Khttps://docs.python.org/3/library/threading.html#threading.BoundedSemaphorejp tthreading.Condition(jm jn Dhttps://docs.python.org/3/library/threading.html#threading.Conditionjp tthreading.Event(jm jn @https://docs.python.org/3/library/threading.html#threading.Eventjp tthreading.Lock(jm jn ?https://docs.python.org/3/library/threading.html#threading.Lockjp tthreading.RLock(jm jn @https://docs.python.org/3/library/threading.html#threading.RLockjp tthreading.Semaphore(jm jn Dhttps://docs.python.org/3/library/threading.html#threading.Semaphorejp tthreading.Thread(jm jn Ahttps://docs.python.org/3/library/threading.html#threading.Threadjp tthreading.Timer(jm jn @https://docs.python.org/3/library/threading.html#threading.Timerjp tthreading.local(jm jn @https://docs.python.org/3/library/threading.html#threading.localjp ttime.struct_time(jm jn https://docs.python.org/3/library/turtle.html#turtle.RawTurtlejp t turtle.Screen(jm jn ;https://docs.python.org/3/library/turtle.html#turtle.Screenjp tturtle.ScrolledCanvas(jm jn Chttps://docs.python.org/3/library/turtle.html#turtle.ScrolledCanvasjp t turtle.Shape(jm jn :https://docs.python.org/3/library/turtle.html#turtle.Shapejp t turtle.Turtle(jm jn ;https://docs.python.org/3/library/turtle.html#turtle.Turtlejp tturtle.TurtleScreen(jm jn Ahttps://docs.python.org/3/library/turtle.html#turtle.TurtleScreenjp t turtle.Vec2D(jm jn :https://docs.python.org/3/library/turtle.html#turtle.Vec2Djp ttype(jm jn 5https://docs.python.org/3/library/functions.html#typejp ttypes.CodeType(jm jn ;https://docs.python.org/3/library/types.html#types.CodeTypejp ttypes.GenericAlias(jm jn ?https://docs.python.org/3/library/types.html#types.GenericAliasjp ttypes.MappingProxyType(jm jn Chttps://docs.python.org/3/library/types.html#types.MappingProxyTypejp ttypes.ModuleType(jm jn =https://docs.python.org/3/library/types.html#types.ModuleTypejp ttypes.SimpleNamespace(jm jn Bhttps://docs.python.org/3/library/types.html#types.SimpleNamespacejp ttypes.TracebackType(jm jn @https://docs.python.org/3/library/types.html#types.TracebackTypejp ttypes.UnionType(jm jn https://docs.python.org/3/library/typing.html#typing.Awaitablejp ttyping.BinaryIO(jm jn =https://docs.python.org/3/library/typing.html#typing.BinaryIOjp ttyping.ByteString(jm jn ?https://docs.python.org/3/library/typing.html#typing.ByteStringjp ttyping.ChainMap(jm jn =https://docs.python.org/3/library/typing.html#typing.ChainMapjp ttyping.Collection(jm jn ?https://docs.python.org/3/library/typing.html#typing.Collectionjp ttyping.Container(jm jn >https://docs.python.org/3/library/typing.html#typing.Containerjp ttyping.ContextManager(jm jn Chttps://docs.python.org/3/library/typing.html#typing.ContextManagerjp ttyping.Coroutine(jm jn >https://docs.python.org/3/library/typing.html#typing.Coroutinejp ttyping.Counter(jm jn https://docs.python.org/3/library/typing.html#typing.FrozenSetjp ttyping.Generator(jm jn >https://docs.python.org/3/library/typing.html#typing.Generatorjp ttyping.Generic(jm jn https://docs.python.org/3/library/typing.html#typing.ItemsViewjp ttyping.Iterable(jm jn =https://docs.python.org/3/library/typing.html#typing.Iterablejp ttyping.Iterator(jm jn =https://docs.python.org/3/library/typing.html#typing.Iteratorjp ttyping.KeysView(jm jn =https://docs.python.org/3/library/typing.html#typing.KeysViewjp t typing.List(jm jn 9https://docs.python.org/3/library/typing.html#typing.Listjp ttyping.Mapping(jm jn https://docs.python.org/3/library/typing.html#typing.ParamSpecjp ttyping.Pattern(jm jn https://docs.python.org/3/library/typing.html#typing.TypedDictjp ttyping.ValuesView(jm jn ?https://docs.python.org/3/library/typing.html#typing.ValuesViewjp tunittest.FunctionTestCase(jm jn Ihttps://docs.python.org/3/library/unittest.html#unittest.FunctionTestCasejp t unittest.IsolatedAsyncioTestCase(jm jn Phttps://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCasejp tunittest.TestCase(jm jn Ahttps://docs.python.org/3/library/unittest.html#unittest.TestCasejp tunittest.TestLoader(jm jn Chttps://docs.python.org/3/library/unittest.html#unittest.TestLoaderjp tunittest.TestResult(jm jn Chttps://docs.python.org/3/library/unittest.html#unittest.TestResultjp tunittest.TestSuite(jm jn Bhttps://docs.python.org/3/library/unittest.html#unittest.TestSuitejp tunittest.TextTestResult(jm jn Ghttps://docs.python.org/3/library/unittest.html#unittest.TextTestResultjp tunittest.TextTestRunner(jm jn Ghttps://docs.python.org/3/library/unittest.html#unittest.TextTestRunnerjp tunittest.mock.AsyncMock(jm jn Lhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.AsyncMockjp tunittest.mock.MagicMock(jm jn Lhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.MagicMockjp tunittest.mock.Mock(jm jn Ghttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mockjp t"unittest.mock.NonCallableMagicMock(jm jn Whttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMagicMockjp tunittest.mock.NonCallableMock(jm jn Rhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMockjp tunittest.mock.PropertyMock(jm jn Ohttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.PropertyMockjp turllib.parse.DefragResult(jm jn Mhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResultjp turllib.parse.DefragResultBytes(jm jn Rhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResultBytesjp turllib.parse.ParseResult(jm jn Lhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResultjp turllib.parse.ParseResultBytes(jm jn Qhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResultBytesjp turllib.parse.SplitResult(jm jn Lhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResultjp turllib.parse.SplitResultBytes(jm jn Qhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResultBytesjp t'urllib.request.AbstractBasicAuthHandler(jm jn ]https://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractBasicAuthHandlerjp t(urllib.request.AbstractDigestAuthHandler(jm jn ^https://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandlerjp turllib.request.BaseHandler(jm jn Phttps://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandlerjp turllib.request.CacheFTPHandler(jm jn Thttps://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandlerjp turllib.request.DataHandler(jm jn Phttps://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandlerjp turllib.request.FTPHandler(jm jn Ohttps://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandlerjp turllib.request.FancyURLopener(jm jn Shttps://docs.python.org/3/library/urllib.request.html#urllib.request.FancyURLopenerjp turllib.request.FileHandler(jm jn Phttps://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandlerjp t#urllib.request.HTTPBasicAuthHandler(jm jn Yhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandlerjp t"urllib.request.HTTPCookieProcessor(jm jn Xhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPCookieProcessorjp t&urllib.request.HTTPDefaultErrorHandler(jm jn \https://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDefaultErrorHandlerjp t$urllib.request.HTTPDigestAuthHandler(jm jn Zhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandlerjp t!urllib.request.HTTPErrorProcessor(jm jn Whttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessorjp turllib.request.HTTPHandler(jm jn Phttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandlerjp t urllib.request.HTTPPasswordMgr(jm jn Thttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrjp t.urllib.request.HTTPPasswordMgrWithDefaultRealm(jm jn dhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithDefaultRealmjp t+urllib.request.HTTPPasswordMgrWithPriorAuth(jm jn ahttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithPriorAuthjp t"urllib.request.HTTPRedirectHandler(jm jn Xhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandlerjp turllib.request.HTTPSHandler(jm jn Qhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPSHandlerjp turllib.request.OpenerDirector(jm jn Shttps://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirectorjp t$urllib.request.ProxyBasicAuthHandler(jm jn Zhttps://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyBasicAuthHandlerjp t%urllib.request.ProxyDigestAuthHandler(jm jn [https://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyDigestAuthHandlerjp turllib.request.ProxyHandler(jm jn Qhttps://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyHandlerjp turllib.request.Request(jm jn Lhttps://docs.python.org/3/library/urllib.request.html#urllib.request.Requestjp turllib.request.URLopener(jm jn Nhttps://docs.python.org/3/library/urllib.request.html#urllib.request.URLopenerjp turllib.request.UnknownHandler(jm jn Shttps://docs.python.org/3/library/urllib.request.html#urllib.request.UnknownHandlerjp turllib.response.addinfourl(jm jn Phttps://docs.python.org/3/library/urllib.request.html#urllib.response.addinfourljp t"urllib.robotparser.RobotFileParser(jm jn \https://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParserjp t uuid.SafeUUID(jm jn 9https://docs.python.org/3/library/uuid.html#uuid.SafeUUIDjp t uuid.UUID(jm jn 5https://docs.python.org/3/library/uuid.html#uuid.UUIDjp tvenv.EnvBuilder(jm jn ;https://docs.python.org/3/library/venv.html#venv.EnvBuilderjp twarnings.catch_warnings(jm jn Ghttps://docs.python.org/3/library/warnings.html#warnings.catch_warningsjp twave.Wave_read(jm jn :https://docs.python.org/3/library/wave.html#wave.Wave_readjp twave.Wave_write(jm jn ;https://docs.python.org/3/library/wave.html#wave.Wave_writejp tweakref.WeakKeyDictionary(jm jn Hhttps://docs.python.org/3/library/weakref.html#weakref.WeakKeyDictionaryjp tweakref.WeakMethod(jm jn Ahttps://docs.python.org/3/library/weakref.html#weakref.WeakMethodjp tweakref.WeakSet(jm jn >https://docs.python.org/3/library/weakref.html#weakref.WeakSetjp tweakref.WeakValueDictionary(jm jn Jhttps://docs.python.org/3/library/weakref.html#weakref.WeakValueDictionaryjp tweakref.finalize(jm jn ?https://docs.python.org/3/library/weakref.html#weakref.finalizejp t weakref.ref(jm jn :https://docs.python.org/3/library/weakref.html#weakref.refjp twsgiref.handlers.BaseCGIHandler(jm jn Nhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseCGIHandlerjp twsgiref.handlers.BaseHandler(jm jn Khttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandlerjp twsgiref.handlers.CGIHandler(jm jn Jhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.CGIHandlerjp twsgiref.handlers.IISCGIHandler(jm jn Mhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.IISCGIHandlerjp twsgiref.handlers.SimpleHandler(jm jn Mhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.SimpleHandlerjp twsgiref.headers.Headers(jm jn Fhttps://docs.python.org/3/library/wsgiref.html#wsgiref.headers.Headersjp t(wsgiref.simple_server.WSGIRequestHandler(jm jn Whttps://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandlerjp t wsgiref.simple_server.WSGIServer(jm jn Ohttps://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServerjp twsgiref.types.ErrorStream(jm jn Hhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.ErrorStreamjp twsgiref.types.FileWrapper(jm jn Hhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.FileWrapperjp twsgiref.types.InputStream(jm jn Hhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.InputStreamjp twsgiref.types.StartResponse(jm jn Jhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.StartResponsejp twsgiref.util.FileWrapper(jm jn Ghttps://docs.python.org/3/library/wsgiref.html#wsgiref.util.FileWrapperjp t xdrlib.Packer(jm jn ;https://docs.python.org/3/library/xdrlib.html#xdrlib.Packerjp txdrlib.Unpacker(jm jn =https://docs.python.org/3/library/xdrlib.html#xdrlib.Unpackerjp txml.dom.pulldom.DOMEventStream(jm jn Uhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStreamjp txml.dom.pulldom.PullDom(jm jn Nhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.PullDomjp txml.dom.pulldom.SAX2DOM(jm jn Nhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.SAX2DOMjp t&xml.etree.ElementTree.C14NWriterTarget(jm jn chttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.C14NWriterTargetjp txml.etree.ElementTree.Element(jm jn Zhttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Elementjp t!xml.etree.ElementTree.ElementTree(jm jn ^https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTreejp t xml.etree.ElementTree.ParseError(jm jn ]https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseErrorjp txml.etree.ElementTree.QName(jm jn Xhttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.QNamejp t!xml.etree.ElementTree.TreeBuilder(jm jn ^https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilderjp txml.etree.ElementTree.XMLParser(jm jn \https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParserjp t#xml.etree.ElementTree.XMLPullParser(jm jn `https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParserjp txml.sax.handler.ContentHandler(jm jn Uhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandlerjp txml.sax.handler.DTDHandler(jm jn Qhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandlerjp txml.sax.handler.EntityResolver(jm jn Uhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.EntityResolverjp txml.sax.handler.ErrorHandler(jm jn Shttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandlerjp txml.sax.handler.LexicalHandler(jm jn Uhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.LexicalHandlerjp txml.sax.saxutils.XMLFilterBase(jm jn Shttps://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLFilterBasejp txml.sax.saxutils.XMLGenerator(jm jn Rhttps://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLGeneratorjp t xml.sax.xmlreader.AttributesImpl(jm jn Vhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesImpljp t"xml.sax.xmlreader.AttributesNSImpl(jm jn Xhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNSImpljp t#xml.sax.xmlreader.IncrementalParser(jm jn Yhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParserjp txml.sax.xmlreader.InputSource(jm jn Shttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSourcejp txml.sax.xmlreader.Locator(jm jn Ohttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locatorjp txml.sax.xmlreader.XMLReader(jm jn Qhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReaderjp txmlrpc.client.Binary(jm jn Ihttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binaryjp txmlrpc.client.DateTime(jm jn Khttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTimejp txmlrpc.client.Fault(jm jn Hhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Faultjp txmlrpc.client.MultiCall(jm jn Lhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.MultiCalljp txmlrpc.client.ProtocolError(jm jn Phttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolErrorjp txmlrpc.client.ServerProxy(jm jn Nhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxyjp t%xmlrpc.server.CGIXMLRPCRequestHandler(jm jn Zhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandlerjp t(xmlrpc.server.DocCGIXMLRPCRequestHandler(jm jn ]https://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandlerjp t%xmlrpc.server.DocXMLRPCRequestHandler(jm jn Zhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCRequestHandlerjp txmlrpc.server.DocXMLRPCServer(jm jn Rhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServerjp t(xmlrpc.server.SimpleXMLRPCRequestHandler(jm jn ]https://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCRequestHandlerjp t xmlrpc.server.SimpleXMLRPCServer(jm jn Uhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServerjp t zipfile.Path(jm jn ;https://docs.python.org/3/library/zipfile.html#zipfile.Pathjp tzipfile.PyZipFile(jm jn @https://docs.python.org/3/library/zipfile.html#zipfile.PyZipFilejp tzipfile.ZipFile(jm jn >https://docs.python.org/3/library/zipfile.html#zipfile.ZipFilejp tzipfile.ZipInfo(jm jn >https://docs.python.org/3/library/zipfile.html#zipfile.ZipInfojp tzipimport.zipimporter(jm jn Fhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporterjp tzoneinfo.ZoneInfo(jm jn Ahttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfojp tustd:pdbcommand}(!(jm jn 7https://docs.python.org/3/library/pdb.html#pdbcommand-0jp talias(jm jn ;https://docs.python.org/3/library/pdb.html#pdbcommand-aliasjp targs(jm jn :https://docs.python.org/3/library/pdb.html#pdbcommand-argsjp tbreak(jm jn ;https://docs.python.org/3/library/pdb.html#pdbcommand-breakjp tclear(jm jn ;https://docs.python.org/3/library/pdb.html#pdbcommand-clearjp tcommands(jm jn >https://docs.python.org/3/library/pdb.html#pdbcommand-commandsjp t condition(jm jn ?https://docs.python.org/3/library/pdb.html#pdbcommand-conditionjp tcontinue(jm jn >https://docs.python.org/3/library/pdb.html#pdbcommand-continuejp tdebug(jm jn ;https://docs.python.org/3/library/pdb.html#pdbcommand-debugjp tdisable(jm jn =https://docs.python.org/3/library/pdb.html#pdbcommand-disablejp tdisplay(jm jn =https://docs.python.org/3/library/pdb.html#pdbcommand-displayjp tdown(jm jn :https://docs.python.org/3/library/pdb.html#pdbcommand-downjp tenable(jm jn https://docs.python.org/3/library/pdb.html#pdbcommand-interactjp tjump(jm jn :https://docs.python.org/3/library/pdb.html#pdbcommand-jumpjp tlist(jm jn :https://docs.python.org/3/library/pdb.html#pdbcommand-listjp tll(jm jn 8https://docs.python.org/3/library/pdb.html#pdbcommand-lljp tnext(jm jn :https://docs.python.org/3/library/pdb.html#pdbcommand-nextjp tp(jm jn 7https://docs.python.org/3/library/pdb.html#pdbcommand-pjp tpp(jm jn 8https://docs.python.org/3/library/pdb.html#pdbcommand-ppjp tquit(jm jn :https://docs.python.org/3/library/pdb.html#pdbcommand-quitjp trestart(jm jn =https://docs.python.org/3/library/pdb.html#pdbcommand-restartjp treturn(jm jn https://docs.python.org/3/using/configure.html#cmdoption-buildjp t--check-hash-based-pycs(jm jn Lhttps://docs.python.org/3/using/cmdline.html#cmdoption-check-hash-based-pycsjp t--disable-ipv6(jm jn Ehttps://docs.python.org/3/using/configure.html#cmdoption-disable-ipv6jp t--disable-test-modules(jm jn Mhttps://docs.python.org/3/using/configure.html#cmdoption-disable-test-modulesjp t--enable-big-digits(jm jn Jhttps://docs.python.org/3/using/configure.html#cmdoption-enable-big-digitsjp t--enable-framework(jm jn :https://docs.python.org/3/using/configure.html#cmdoption-2jp t#--enable-loadable-sqlite-extensions(jm jn Zhttps://docs.python.org/3/using/configure.html#cmdoption-enable-loadable-sqlite-extensionsjp t--enable-optimizations(jm jn Mhttps://docs.python.org/3/using/configure.html#cmdoption-enable-optimizationsjp t--enable-profiling(jm jn Ihttps://docs.python.org/3/using/configure.html#cmdoption-enable-profilingjp t--enable-pystats(jm jn Ghttps://docs.python.org/3/using/configure.html#cmdoption-enable-pystatsjp t--enable-shared(jm jn Fhttps://docs.python.org/3/using/configure.html#cmdoption-enable-sharedjp t--enable-universalsdk(jm jn :https://docs.python.org/3/using/configure.html#cmdoption-1jp t--enable-wasm-dynamic-linking(jm jn Thttps://docs.python.org/3/using/configure.html#cmdoption-enable-wasm-dynamic-linkingjp t--enable-wasm-pthreads(jm jn Mhttps://docs.python.org/3/using/configure.html#cmdoption-enable-wasm-pthreadsjp t --exec-prefix(jm jn Dhttps://docs.python.org/3/using/configure.html#cmdoption-exec-prefixjp t--help(jm jn ;https://docs.python.org/3/using/cmdline.html#cmdoption-helpjp t --help-all(jm jn ?https://docs.python.org/3/using/cmdline.html#cmdoption-help-alljp t --help-env(jm jn ?https://docs.python.org/3/using/cmdline.html#cmdoption-help-envjp t--help-xoptions(jm jn Dhttps://docs.python.org/3/using/cmdline.html#cmdoption-help-xoptionsjp t--host(jm jn =https://docs.python.org/3/using/configure.html#cmdoption-hostjp t--prefix(jm jn ?https://docs.python.org/3/using/configure.html#cmdoption-prefixjp t --version(jm jn >https://docs.python.org/3/using/cmdline.html#cmdoption-versionjp t--with-address-sanitizer(jm jn Ohttps://docs.python.org/3/using/configure.html#cmdoption-with-address-sanitizerjp t--with-assertions(jm jn Hhttps://docs.python.org/3/using/configure.html#cmdoption-with-assertionsjp t--with-build-python(jm jn Jhttps://docs.python.org/3/using/configure.html#cmdoption-with-build-pythonjp t--with-builtin-hashlib-hashes(jm jn Thttps://docs.python.org/3/using/configure.html#cmdoption-with-builtin-hashlib-hashesjp t--with-computed-gotos(jm jn Lhttps://docs.python.org/3/using/configure.html#cmdoption-with-computed-gotosjp t--with-cxx-main(jm jn :https://docs.python.org/3/using/configure.html#cmdoption-0jp t--with-dbmliborder(jm jn Ihttps://docs.python.org/3/using/configure.html#cmdoption-with-dbmliborderjp t --with-dtrace(jm jn Dhttps://docs.python.org/3/using/configure.html#cmdoption-with-dtracejp t--with-emscripten-target(jm jn Ohttps://docs.python.org/3/using/configure.html#cmdoption-with-emscripten-targetjp t--with-ensurepip(jm jn Ghttps://docs.python.org/3/using/configure.html#cmdoption-with-ensurepipjp t--with-framework-name(jm jn Lhttps://docs.python.org/3/using/configure.html#cmdoption-with-framework-namejp t--with-hash-algorithm(jm jn Lhttps://docs.python.org/3/using/configure.html#cmdoption-with-hash-algorithmjp t --with-libc(jm jn Bhttps://docs.python.org/3/using/configure.html#cmdoption-with-libcjp t --with-libm(jm jn Bhttps://docs.python.org/3/using/configure.html#cmdoption-with-libmjp t --with-libs(jm jn Bhttps://docs.python.org/3/using/configure.html#cmdoption-with-libsjp t --with-lto(jm jn Ahttps://docs.python.org/3/using/configure.html#cmdoption-with-ltojp t--with-memory-sanitizer(jm jn Nhttps://docs.python.org/3/using/configure.html#cmdoption-with-memory-sanitizerjp t--with-openssl(jm jn Ehttps://docs.python.org/3/using/configure.html#cmdoption-with-openssljp t--with-openssl-rpath(jm jn Khttps://docs.python.org/3/using/configure.html#cmdoption-with-openssl-rpathjp t--with-pkg-config(jm jn Hhttps://docs.python.org/3/using/configure.html#cmdoption-with-pkg-configjp t--with-platlibdir(jm jn Hhttps://docs.python.org/3/using/configure.html#cmdoption-with-platlibdirjp t--with-pydebug(jm jn Ehttps://docs.python.org/3/using/configure.html#cmdoption-with-pydebugjp t--with-readline(jm jn Fhttps://docs.python.org/3/using/configure.html#cmdoption-with-readlinejp t--with-ssl-default-suites(jm jn Phttps://docs.python.org/3/using/configure.html#cmdoption-with-ssl-default-suitesjp t --with-suffix(jm jn Dhttps://docs.python.org/3/using/configure.html#cmdoption-with-suffixjp t--with-system-expat(jm jn Jhttps://docs.python.org/3/using/configure.html#cmdoption-with-system-expatjp t--with-system-ffi(jm jn Hhttps://docs.python.org/3/using/configure.html#cmdoption-with-system-ffijp t--with-system-libmpdec(jm jn Mhttps://docs.python.org/3/using/configure.html#cmdoption-with-system-libmpdecjp t--with-trace-refs(jm jn Hhttps://docs.python.org/3/using/configure.html#cmdoption-with-trace-refsjp t --with-tzpath(jm jn Dhttps://docs.python.org/3/using/configure.html#cmdoption-with-tzpathjp t#--with-undefined-behavior-sanitizer(jm jn Zhttps://docs.python.org/3/using/configure.html#cmdoption-with-undefined-behavior-sanitizerjp t--with-universal-archs(jm jn Mhttps://docs.python.org/3/using/configure.html#cmdoption-with-universal-archsjp t--with-valgrind(jm jn Fhttps://docs.python.org/3/using/configure.html#cmdoption-with-valgrindjp t--with-wheel-pkg-dir(jm jn Khttps://docs.python.org/3/using/configure.html#cmdoption-with-wheel-pkg-dirjp t--without-c-locale-coercion(jm jn Rhttps://docs.python.org/3/using/configure.html#cmdoption-without-c-locale-coercionjp t--without-decimal-contextvar(jm jn Shttps://docs.python.org/3/using/configure.html#cmdoption-without-decimal-contextvarjp t--without-doc-strings(jm jn Lhttps://docs.python.org/3/using/configure.html#cmdoption-without-doc-stringsjp t--without-pymalloc(jm jn Ihttps://docs.python.org/3/using/configure.html#cmdoption-without-pymallocjp t--without-readline(jm jn Ihttps://docs.python.org/3/using/configure.html#cmdoption-without-readlinejp t--without-static-libpython(jm jn Qhttps://docs.python.org/3/using/configure.html#cmdoption-without-static-libpythonjp t-?(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-0jp t-B(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Bjp t-E(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Ejp t-I(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Ijp t-J(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Jjp t-O(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Ojp t-OO(jm jn 9https://docs.python.org/3/using/cmdline.html#cmdoption-OOjp t-P(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Pjp t-R(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Rjp t-S(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Sjp t-V(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Vjp t-W(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Wjp t-X(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-Xjp t-b(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-bjp t-c(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-cjp t-d(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-djp t-h(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-hjp t-i(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-ijp t-m(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-mjp t-q(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-qjp t-s(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-sjp t-u(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-ujp t-v(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-1jp t-x(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdoption-xjp tw./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].--converters(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-convertersjp tr./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].--force(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-fjp tq./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].--help(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-hjp tq./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].--make(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-makejp ts./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].--output(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-ojp ts./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].--srcdir(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-srcdirjp tt./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].--verbose(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-vjp tm./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].-f(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-fjp tm./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].-h(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-hjp tm./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].-o(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-ojp tm./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].-v(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-vjp to./Tools/clinic/clinic.py-[-h]-[-f]-[-o-OUTPUT]-[-v]-\-[--converters]-[--make]-[--srcdir-SRCDIR]-[FILE-...].FILE(jm jn https://docs.python.org/3/howto/clinic.html#cmdoption-.-Tools-clinic-clinic.py-h-f-o-OUTPUT-v-converters-make-srcdir-SRCDIR-FILE-...-arg-FILEjp t CONFIG_SITE(jm jn Hhttps://docs.python.org/3/using/configure.html#cmdoption-arg-CONFIG_SITEjp t ast.--help(jm jn :https://docs.python.org/3/library/ast.html#cmdoption-ast-hjp tast.--include-attributes(jm jn :https://docs.python.org/3/library/ast.html#cmdoption-ast-ajp t ast.--indent(jm jn ?https://docs.python.org/3/library/ast.html#cmdoption-ast-indentjp t ast.--mode(jm jn =https://docs.python.org/3/library/ast.html#cmdoption-ast-modejp tast.--no-type-comments(jm jn Ihttps://docs.python.org/3/library/ast.html#cmdoption-ast-no-type-commentsjp tast.-a(jm jn :https://docs.python.org/3/library/ast.html#cmdoption-ast-ajp tast.-h(jm jn :https://docs.python.org/3/library/ast.html#cmdoption-ast-hjp tast.-i(jm jn :https://docs.python.org/3/library/ast.html#cmdoption-ast-ijp tast.-m(jm jn :https://docs.python.org/3/library/ast.html#cmdoption-ast-mjp tcompileall.--hardlink-dupes(jm jn Uhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-hardlink-dupesjp tcompileall.--invalidation-mode(jm jn Xhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-invalidation-modejp t compileall.-b(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-bjp t compileall.-d(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-djp t compileall.-e(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-ejp t compileall.-f(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-fjp t compileall.-i(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-ijp t compileall.-j(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-jjp t compileall.-l(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-ljp t compileall.-o(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-ojp t compileall.-p(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-pjp t compileall.-q(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-qjp t compileall.-r(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-rjp t compileall.-s(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-sjp t compileall.-x(jm jn Hhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-xjp tcompileall.directory(jm jn Thttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-arg-directoryjp tcompileall.file(jm jn Ohttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-arg-filejp t gzip.--best(jm jn ?https://docs.python.org/3/library/gzip.html#cmdoption-gzip-bestjp tgzip.--decompress(jm jn (jm jn Xhttps://docs.python.org/3/library/py_compile.html#cmdoption-python-m-py_compile-arg-filejp tsite.--user-base(jm jn Dhttps://docs.python.org/3/library/site.html#cmdoption-site-user-basejp tsite.--user-site(jm jn Dhttps://docs.python.org/3/library/site.html#cmdoption-site-user-sitejp ttarfile.--create(jm jn Ghttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-createjp ttarfile.--extract(jm jn Hhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-extractjp ttarfile.--filter(jm jn Ghttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-filterjp ttarfile.--list(jm jn Ehttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-listjp ttarfile.--test(jm jn Ehttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-testjp ttarfile.--verbose(jm jn Bhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-vjp t tarfile.-c(jm jn Bhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-cjp t tarfile.-e(jm jn Bhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-ejp t tarfile.-l(jm jn Bhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-ljp t tarfile.-t(jm jn Bhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-tjp t tarfile.-v(jm jn Bhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-vjp t timeit.--help(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-hjp ttimeit.--number(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-njp ttimeit.--process(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-pjp ttimeit.--repeat(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-rjp ttimeit.--setup(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-sjp t timeit.--unit(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-ujp ttimeit.--verbose(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-vjp t timeit.-h(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-hjp t timeit.-n(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-njp t timeit.-p(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-pjp t timeit.-r(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-rjp t timeit.-s(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-sjp t timeit.-u(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-ujp t timeit.-v(jm jn @https://docs.python.org/3/library/timeit.html#cmdoption-timeit-vjp ttokenize.--exact(jm jn Dhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-ejp ttokenize.--help(jm jn Dhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-hjp t tokenize.-e(jm jn Dhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-ejp t tokenize.-h(jm jn Dhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-hjp t trace.--count(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-cjp ttrace.--coverdir(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-Cjp t trace.--file(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-fjp t trace.--help(jm jn Ahttps://docs.python.org/3/library/trace.html#cmdoption-trace-helpjp ttrace.--ignore-dir(jm jn Ghttps://docs.python.org/3/library/trace.html#cmdoption-trace-ignore-dirjp ttrace.--ignore-module(jm jn Jhttps://docs.python.org/3/library/trace.html#cmdoption-trace-ignore-modulejp ttrace.--listfuncs(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-ljp ttrace.--missing(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-mjp ttrace.--no-report(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-Rjp ttrace.--report(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-rjp ttrace.--summary(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-sjp ttrace.--timing(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-gjp t trace.--trace(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-tjp ttrace.--trackcalls(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-Tjp ttrace.--version(jm jn Dhttps://docs.python.org/3/library/trace.html#cmdoption-trace-versionjp ttrace.-C(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-Cjp ttrace.-R(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-Rjp ttrace.-T(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-Tjp ttrace.-c(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-cjp ttrace.-f(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-fjp ttrace.-g(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-gjp ttrace.-l(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-ljp ttrace.-m(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-mjp ttrace.-r(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-rjp ttrace.-s(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-sjp ttrace.-t(jm jn >https://docs.python.org/3/library/trace.html#cmdoption-trace-tjp tunittest-discover.--pattern(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-pjp t#unittest-discover.--start-directory(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-sjp t'unittest-discover.--top-level-directory(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-tjp tunittest-discover.--verbose(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-vjp tunittest-discover.-p(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-pjp tunittest-discover.-s(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-sjp tunittest-discover.-t(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-tjp tunittest-discover.-v(jm jn Mhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-vjp tunittest.--buffer(jm jn Dhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-bjp tunittest.--catch(jm jn Dhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-cjp tunittest.--failfast(jm jn Dhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-fjp tunittest.--locals(jm jn Ihttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-localsjp t unittest.-b(jm jn Dhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-bjp t unittest.-c(jm jn Dhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-cjp t unittest.-f(jm jn Dhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-fjp t unittest.-k(jm jn Dhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-kjp tzipapp.--compress(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-cjp t zipapp.--help(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-hjp t zipapp.--info(jm jn Chttps://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-infojp t zipapp.--main(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-mjp tzipapp.--output(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-ojp tzipapp.--python(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-pjp t zipapp.-c(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-cjp t zipapp.-h(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-hjp t zipapp.-m(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-mjp t zipapp.-o(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-ojp t zipapp.-p(jm jn @https://docs.python.org/3/library/zipapp.html#cmdoption-zipapp-pjp tzipfile.--create(jm jn Ghttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-createjp tzipfile.--extract(jm jn Hhttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-extractjp tzipfile.--list(jm jn Ehttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-listjp tzipfile.--metadata-encoding(jm jn Rhttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-metadata-encodingjp tzipfile.--test(jm jn Ehttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-testjp t zipfile.-c(jm jn Bhttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-cjp t zipfile.-e(jm jn Bhttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-ejp t zipfile.-l(jm jn Bhttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-ljp t zipfile.-t(jm jn Bhttps://docs.python.org/3/library/zipfile.html#cmdoption-zipfile-tjp tustd:term}(...(jm jn 0https://docs.python.org/3/glossary.html#term-...jp t2to3(jm jn 1https://docs.python.org/3/glossary.html#term-2to3jp t>>>(jm jn .https://docs.python.org/3/glossary.html#term-0jp tBDFL(jm jn 1https://docs.python.org/3/glossary.html#term-BDFLjp tCPython(jm jn 4https://docs.python.org/3/glossary.html#term-CPythonjp tEAFP(jm jn 1https://docs.python.org/3/glossary.html#term-EAFPjp tGIL(jm jn 0https://docs.python.org/3/glossary.html#term-GILjp tIDLE(jm jn 1https://docs.python.org/3/glossary.html#term-IDLEjp tLBYL(jm jn 1https://docs.python.org/3/glossary.html#term-LBYLjp tMRO(jm jn 0https://docs.python.org/3/glossary.html#term-MROjp tPEP(jm jn 0https://docs.python.org/3/glossary.html#term-PEPjp t Python 3000(jm jn 8https://docs.python.org/3/glossary.html#term-Python-3000jp tPythonic(jm jn 5https://docs.python.org/3/glossary.html#term-Pythonicjp t Zen of Python(jm jn :https://docs.python.org/3/glossary.html#term-Zen-of-Pythonjp t __future__(jm jn 7https://docs.python.org/3/glossary.html#term-__future__jp t __slots__(jm jn 6https://docs.python.org/3/glossary.html#term-__slots__jp tabstract base class(jm jn @https://docs.python.org/3/glossary.html#term-abstract-base-classjp t annotation(jm jn 7https://docs.python.org/3/glossary.html#term-annotationjp targument(jm jn 5https://docs.python.org/3/glossary.html#term-argumentjp tasynchronous context manager(jm jn Ihttps://docs.python.org/3/glossary.html#term-asynchronous-context-managerjp tasynchronous generator(jm jn Chttps://docs.python.org/3/glossary.html#term-asynchronous-generatorjp tasynchronous generator iterator(jm jn Lhttps://docs.python.org/3/glossary.html#term-asynchronous-generator-iteratorjp tasynchronous iterable(jm jn Bhttps://docs.python.org/3/glossary.html#term-asynchronous-iterablejp tasynchronous iterator(jm jn Bhttps://docs.python.org/3/glossary.html#term-asynchronous-iteratorjp t attribute(jm jn 6https://docs.python.org/3/glossary.html#term-attributejp t awaitable(jm jn 6https://docs.python.org/3/glossary.html#term-awaitablejp t binary file(jm jn 8https://docs.python.org/3/glossary.html#term-binary-filejp tblock(jm jn 6https://docs.python.org/3/howto/clinic.html#term-blockjp tborrowed reference(jm jn ?https://docs.python.org/3/glossary.html#term-borrowed-referencejp tbytecode(jm jn 5https://docs.python.org/3/glossary.html#term-bytecodejp tbytes-like object(jm jn >https://docs.python.org/3/glossary.html#term-bytes-like-objectjp tcallable(jm jn 5https://docs.python.org/3/glossary.html#term-callablejp tcallback(jm jn 5https://docs.python.org/3/glossary.html#term-callbackjp tchecksum(jm jn 9https://docs.python.org/3/howto/clinic.html#term-checksumjp t checksum line(jm jn >https://docs.python.org/3/howto/clinic.html#term-checksum-linejp tclass(jm jn 2https://docs.python.org/3/glossary.html#term-classjp tclass variable(jm jn ;https://docs.python.org/3/glossary.html#term-class-variablejp tcomplex number(jm jn ;https://docs.python.org/3/glossary.html#term-complex-numberjp tcontext manager(jm jn https://docs.python.org/3/glossary.html#term-namespace-packagejp t nested scope(jm jn 9https://docs.python.org/3/glossary.html#term-nested-scopejp tnew-style class(jm jn https://docs.python.org/3/glossary.html#term-path-based-finderjp t path entry(jm jn 7https://docs.python.org/3/glossary.html#term-path-entryjp tpath entry finder(jm jn >https://docs.python.org/3/glossary.html#term-path-entry-finderjp tpath entry hook(jm jn https://docs.python.org/3/glossary.html#term-set-comprehensionjp tsingle dispatch(jm jn https://docs.python.org/3/c-api/intro.html#api-refcountdetailsReference Count Detailst api-refcounts(jm jn 8https://docs.python.org/3/c-api/intro.html#api-refcountsReference Countst api-reference(jm jn =https://docs.python.org/3/distutils/apiref.html#api-reference API Referencet api-types(jm jn 4https://docs.python.org/3/c-api/intro.html#api-typesTypest apiabiversion(jm jn @https://docs.python.org/3/c-api/apiabiversion.html#apiabiversionAPI and ABI Versioningt applications(jm jn :https://docs.python.org/3/library/struct.html#applications Applicationstarbitrary-object-messages(jm jn Fhttps://docs.python.org/3/howto/logging.html#arbitrary-object-messages#Using arbitrary objects as messagest archiving(jm jn :https://docs.python.org/3/library/archiving.html#archivingData Compression and Archivingtarchiving-operations(jm jn Bhttps://docs.python.org/3/library/shutil.html#archiving-operationsArchiving operationst arg-parsing(jm jn 4https://docs.python.org/3/c-api/arg.html#arg-parsing%Parsing arguments and building valuestargparse-tutorial(jm jn ?https://docs.python.org/3/howto/argparse.html#argparse-tutorialArgparse Tutorialtargs(jm jn 4https://docs.python.org/3/library/argparse.html#argsBeyond sys.argvtas(jm jn :https://docs.python.org/3/reference/compound_stmts.html#asThe with statementt as-patterns(jm jn Chttps://docs.python.org/3/reference/compound_stmts.html#as-patterns AS Patternstassert(jm jn https://docs.python.org/3/library/unittest.html#assert-methodsjp t assignment(jm jn @https://docs.python.org/3/reference/simple_stmts.html#assignmentAssignment statementstast-cli(jm jn 2https://docs.python.org/3/library/ast.html#ast-cliCommand-Line Usagetast-compiler-flags(jm jn =https://docs.python.org/3/library/ast.html#ast-compiler-flagsCompiler Flagstast-expressions(jm jn :https://docs.python.org/3/library/ast.html#ast-expressions Expressionstast-root-nodes(jm jn 9https://docs.python.org/3/library/ast.html#ast-root-nodes Root nodestast-statements(jm jn 9https://docs.python.org/3/library/ast.html#ast-statements Statementstasync(jm jn =https://docs.python.org/3/reference/compound_stmts.html#async Coroutinest async def(jm jn Ahttps://docs.python.org/3/reference/compound_stmts.html#async-defCoroutine function definitiont async for(jm jn Ahttps://docs.python.org/3/reference/compound_stmts.html#async-forThe async for statementt async with(jm jn Bhttps://docs.python.org/3/reference/compound_stmts.html#async-withThe async with statementtasync-context-managers(jm jn Ihttps://docs.python.org/3/reference/datamodel.html#async-context-managersAsynchronous Context Managerstasync-iterators(jm jn Bhttps://docs.python.org/3/reference/datamodel.html#async-iteratorsAsynchronous Iteratorst async-structs(jm jn :https://docs.python.org/3/c-api/typeobj.html#async-structsAsync Object Structurestasynchat-example(jm jn @https://docs.python.org/3/library/asynchat.html#asynchat-exampleasynchat Examplet asynchronous-generator-functions(jm jn Uhttps://docs.python.org/3/reference/expressions.html#asynchronous-generator-functions Asynchronous generator functionstasynchronous-generator-methods(jm jn Shttps://docs.python.org/3/reference/expressions.html#asynchronous-generator-methods'Asynchronous generator-iterator methodstasynchronous-programming(jm jn Fhttps://docs.python.org/3/library/typing.html#asynchronous-programming/Aliases to asynchronous ABCs in collections.abctasyncio-awaitables(jm jn Fhttps://docs.python.org/3/library/asyncio-task.html#asyncio-awaitables Awaitablestasyncio-coroutine-not-scheduled(jm jn Rhttps://docs.python.org/3/library/asyncio-dev.html#asyncio-coroutine-not-scheduledDetect never-awaited coroutinestasyncio-custom-policies(jm jn Mhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-custom-policiesCustom Policiestasyncio-debug-mode(jm jn Ehttps://docs.python.org/3/library/asyncio-dev.html#asyncio-debug-mode Debug Modetasyncio-delayed-calls(jm jn Nhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-delayed-callsScheduling delayed callbackst asyncio-dev(jm jn >https://docs.python.org/3/library/asyncio-dev.html#asyncio-devDeveloping with asynciotasyncio-event-loop(jm jn Khttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loop Event Loopt"asyncio-event-loop-implementations(jm jn [https://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loop-implementationsEvent Loop Implementationstasyncio-event-loop-methods(jm jn Shttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loop-methodsEvent Loop Methodstasyncio-event-loops(jm jn Lhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loopsEvent Loop Implementationstasyncio-exceptions(jm jn Lhttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio-exceptions Exceptionstasyncio-futures(jm jn Ehttps://docs.python.org/3/library/asyncio-future.html#asyncio-futuresFuturestasyncio-handle-blocking(jm jn Jhttps://docs.python.org/3/library/asyncio-dev.html#asyncio-handle-blockingRunning Blocking Codetasyncio-logger(jm jn Ahttps://docs.python.org/3/library/asyncio-dev.html#asyncio-loggerLoggingtasyncio-multithreading(jm jn Ihttps://docs.python.org/3/library/asyncio-dev.html#asyncio-multithreadingConcurrency and Multithreadingtasyncio-pass-keywords(jm jn Nhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-pass-keywordsjp tasyncio-platform-support(jm jn Qhttps://docs.python.org/3/library/asyncio-platforms.html#asyncio-platform-supportPlatform Supporttasyncio-policies(jm jn Fhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policiesPoliciestasyncio-policy-builtin(jm jn Lhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policy-builtinjp tasyncio-policy-get-set(jm jn Lhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policy-get-setGetting and Setting the Policytasyncio-policy-objects(jm jn Lhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policy-objectsPolicy Objectstasyncio-protocol(jm jn Hhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-protocol Protocolstasyncio-queues(jm jn Chttps://docs.python.org/3/library/asyncio-queue.html#asyncio-queuesQueuestasyncio-streams(jm jn Ehttps://docs.python.org/3/library/asyncio-stream.html#asyncio-streamsStreamstasyncio-subprocess(jm jn Lhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio-subprocess Subprocessestasyncio-subprocess-protocols(jm jn Thttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-subprocess-protocolsSubprocess Protocolstasyncio-subprocess-threads(jm jn Thttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio-subprocess-threadsSubprocess and Threadstasyncio-subprocess-transports(jm jn Uhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-subprocess-transportsSubprocess Transportst asyncio-sync(jm jn @https://docs.python.org/3/library/asyncio-sync.html#asyncio-syncSynchronization Primitivestasyncio-tcp-echo-client-streams(jm jn Uhttps://docs.python.org/3/library/asyncio-stream.html#asyncio-tcp-echo-client-streamsTCP echo client using streamstasyncio-tcp-echo-server-streams(jm jn Uhttps://docs.python.org/3/library/asyncio-stream.html#asyncio-tcp-echo-server-streamsTCP echo server using streamstasyncio-transport(jm jn Ihttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-transport Transportstasyncio-transports-protocols(jm jn Thttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-transports-protocolsTransports and Protocolst asyncio-udp-echo-client-protocol(jm jn Xhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-udp-echo-client-protocolUDP Echo Clientt asyncio-udp-echo-server-protocol(jm jn Xhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-udp-echo-server-protocolUDP Echo Servertasyncio-watchers(jm jn Fhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-watchersProcess Watcherstasyncio-windows-subprocess(jm jn Shttps://docs.python.org/3/library/asyncio-platforms.html#asyncio-windows-subprocessSubprocess Support on Windowstasyncio_example_barrier(jm jn Khttps://docs.python.org/3/library/asyncio-sync.html#asyncio-example-barrierjp tasyncio_example_call_later(jm jn Shttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-call-later*Display the current date with call_later()t!asyncio_example_create_connection(jm jn Yhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-create-connectionConnecting Existing Socketst)asyncio_example_create_connection-streams(jm jn _https://docs.python.org/3/library/asyncio-stream.html#asyncio-example-create-connection-streams6Register an open socket to wait for data using streamst&asyncio_example_create_subprocess_exec(jm jn `https://docs.python.org/3/library/asyncio-subprocess.html#asyncio-example-create-subprocess-execjp tasyncio_example_future(jm jn Lhttps://docs.python.org/3/library/asyncio-future.html#asyncio-example-futurejp tasyncio_example_gather(jm jn Jhttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-gatherjp t#asyncio_example_lowlevel_helloworld(jm jn \https://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-lowlevel-helloworldHello World with call_soon()tasyncio_example_queue_dist(jm jn Ohttps://docs.python.org/3/library/asyncio-queue.html#asyncio-example-queue-distjp tasyncio_example_sleep(jm jn Ihttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-sleepjp tasyncio_example_stream(jm jn Lhttps://docs.python.org/3/library/asyncio-stream.html#asyncio-example-streamjp t asyncio_example_subprocess_proto(jm jn Xhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-subprocess-proto-loop.subprocess_exec() and SubprocessProtocolt asyncio_example_subprocess_shell(jm jn Zhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio-example-subprocess-shelljp tasyncio_example_sync_event(jm jn Nhttps://docs.python.org/3/library/asyncio-sync.html#asyncio-example-sync-eventjp tasyncio_example_task_cancel(jm jn Ohttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-task-canceljp t(asyncio_example_tcp_echo_client_protocol(jm jn `https://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-tcp-echo-client-protocolTCP Echo Clientt(asyncio_example_tcp_echo_server_protocol(jm jn `https://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-tcp-echo-server-protocolTCP Echo Servertasyncio_example_unix_signals(jm jn Uhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-unix-signals*Set signal handlers for SIGINT and SIGTERMtasyncio_example_waitfor(jm jn Khttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-waitforjp tasyncio_example_watch_fd(jm jn Qhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-watch-fd'Watch a file descriptor for read eventstasyncore-example-1(jm jn Bhttps://docs.python.org/3/library/asyncore.html#asyncore-example-1"asyncore Example basic HTTP clienttasyncore-example-2(jm jn Bhttps://docs.python.org/3/library/asyncore.html#asyncore-example-2"asyncore Example basic echo servertatexit-example(jm jn https://docs.python.org/3/library/bisect.html#bisect-functionsjp tbisect-example(jm jn https://docs.python.org/3/whatsnew/3.8.html#bpo-36085-whatsnewjp tbpo-36817-whatsnew(jm jn >https://docs.python.org/3/whatsnew/3.8.html#bpo-36817-whatsnewBf-strings support = for self-documenting expressions and debuggingtbreak(jm jn ;https://docs.python.org/3/reference/simple_stmts.html#breakThe break statementtbrowser-controllers(jm jn Ehttps://docs.python.org/3/library/webbrowser.html#browser-controllersBrowser Controller Objectstbsd0(jm jn +https://docs.python.org/3/license.html#bsd0CZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON 3.11.4 DOCUMENTATIONtbuffer-request-types(jm jn @https://docs.python.org/3/c-api/buffer.html#buffer-request-typesBuffer request typestbuffer-structs(jm jn ;https://docs.python.org/3/c-api/typeobj.html#buffer-structsBuffer Object Structurestbuffer-structure(jm jn https://docs.python.org/3/c-api/arg.html#c-arg-borrowed-bufferjp t c-preinit(jm jn :https://docs.python.org/3/c-api/init_config.html#c-preinit%Preinitialize Python with PyPreConfigtc-wrapper-software(jm jn ?https://docs.python.org/3/faq/extending.html#c-wrapper-software.Writing C is hard; are there any alternatives?tc99(jm jn .https://docs.python.org/3/library/sys.html#c99jp tcab(jm jn 1https://docs.python.org/3/library/msilib.html#cab CAB Objectstcacheftp-handler-objects(jm jn Nhttps://docs.python.org/3/library/urllib.request.html#cacheftp-handler-objectsCacheFTPHandler Objectstcall(jm jn .https://docs.python.org/3/c-api/call.html#call Call Protocoltcall-function-trio(jm jn Dhttps://docs.python.org/3/library/subprocess.html#call-function-trioOlder high-level APItcallable-types(jm jn Ahttps://docs.python.org/3/reference/datamodel.html#callable-typesEmulating callable objectst callingpython(jm jn @https://docs.python.org/3/extending/extending.html#callingpythonCalling Python Functions from Ctcalls(jm jn :https://docs.python.org/3/reference/expressions.html#callsCallstcalls-as-tuples(jm jn Dhttps://docs.python.org/3/library/unittest.mock.html#calls-as-tuplesjp tcalltips(jm jn 4https://docs.python.org/3/library/idle.html#calltipsCalltipst capi-call(jm jn 3https://docs.python.org/3/c-api/call.html#capi-callObject Calling APItcapsules(jm jn 5https://docs.python.org/3/c-api/capsule.html#capsulesCapsulestcapture-patterns(jm jn Hhttps://docs.python.org/3/reference/compound_stmts.html#capture-patternsCapture Patternst cell-objects(jm jn 6https://docs.python.org/3/c-api/cell.html#cell-objects Cell Objectst cgi-intro(jm jn 4https://docs.python.org/3/library/cgi.html#cgi-introjp t cgi-security(jm jn 7https://docs.python.org/3/library/cgi.html#cgi-securityCaring about securityt changelog(jm jn ;https://docs.python.org/3/whatsnew/changelog.html#changelog Changelogtchanges-python-api(jm jn ?https://docs.python.org/3/whatsnew/3.10.html#changes-python-apiChanges in the Python APIt check-module(jm jn 8https://docs.python.org/3/library/idle.html#check-modulejp tchoices(jm jn 7https://docs.python.org/3/library/argparse.html#choicesjp tclass(jm jn =https://docs.python.org/3/reference/compound_stmts.html#classClass definitionstclass-customization(jm jn Fhttps://docs.python.org/3/reference/datamodel.html#class-customizationCustomizing class creationtclass-object-creation(jm jn Hhttps://docs.python.org/3/reference/datamodel.html#class-object-creationCreating the class objecttclass-pattern-matching(jm jn Ihttps://docs.python.org/3/reference/datamodel.html#class-pattern-matching:Customizing positional arguments in class pattern matchingtclass-patterns(jm jn Fhttps://docs.python.org/3/reference/compound_stmts.html#class-patternsClass Patternstclassgetitem-versus-getitem(jm jn Nhttps://docs.python.org/3/reference/datamodel.html#classgetitem-versus-getitem$__class_getitem__ versus __getitem__tclinic-background(jm jn =https://docs.python.org/3/howto/clinic.html#clinic-background Backgroundt clinic-cli(jm jn 6https://docs.python.org/3/howto/clinic.html#clinic-cliCommand-line interfacet clinic-howto-advanced-converters(jm jn Lhttps://docs.python.org/3/howto/clinic.html#clinic-howto-advanced-convertersHow to use advanced converterstclinic-howto-default-values(jm jn Ghttps://docs.python.org/3/howto/clinic.html#clinic-howto-default-values)How to assign default values to parametertclinic-howto-return-converters(jm jn Jhttps://docs.python.org/3/howto/clinic.html#clinic-howto-return-convertersHow to use return converterstclinic-howto-self-converter(jm jn Ghttps://docs.python.org/3/howto/clinic.html#clinic-howto-self-converter#How to use the “self converter”t clinic-howtos(jm jn 9https://docs.python.org/3/howto/clinic.html#clinic-howtos How-to guidestclinic-reference(jm jn https://docs.python.org/3/howto/clinic.html#clinic-terminology Terminologytclinic-tutorial(jm jn ;https://docs.python.org/3/howto/clinic.html#clinic-tutorialTutorialt cmd-example(jm jn 6https://docs.python.org/3/library/cmd.html#cmd-example Cmd Examplet cmd-objects(jm jn 6https://docs.python.org/3/library/cmd.html#cmd-objects Cmd Objectst cmdarg-dash(jm jn 8https://docs.python.org/3/using/cmdline.html#cmdarg-dashjp t cmdarg-script(jm jn :https://docs.python.org/3/using/cmdline.html#cmdarg-scriptjp t code-context(jm jn 8https://docs.python.org/3/library/idle.html#code-context Code Contexttcodec-base-classes(jm jn @https://docs.python.org/3/library/codecs.html#codec-base-classesCodec Base Classestcodec-handling-improvements(jm jn Ghttps://docs.python.org/3/whatsnew/3.4.html#codec-handling-improvementsImprovements to Codec Handlingt codec-objects(jm jn ;https://docs.python.org/3/library/codecs.html#codec-objectsStateless Encoding and Decodingtcodec-registry(jm jn 9https://docs.python.org/3/c-api/codec.html#codec-registry$Codec registry and support functionst codeobjects(jm jn 5https://docs.python.org/3/c-api/code.html#codeobjects Code Objectst!collections-abstract-base-classes(jm jn Xhttps://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes!Collections Abstract Base Classestcomments(jm jn Bhttps://docs.python.org/3/reference/lexical_analysis.html#commentsCommentstcommon-structs(jm jn >https://docs.python.org/3/c-api/structures.html#common-structsCommon Object Structurestcomparison-with-json(jm jn Bhttps://docs.python.org/3/library/pickle.html#comparison-with-jsonComparison with jsont comparisons(jm jn @https://docs.python.org/3/reference/expressions.html#comparisons Comparisonstcompat32_message(jm jn Nhttps://docs.python.org/3/library/email.compat32-message.html#compat32-messageKemail.message.Message: Representing an email message using the compat32 APIt compilation(jm jn >https://docs.python.org/3/extending/extending.html#compilationCompilation and Linkaget compiling(jm jn https://docs.python.org/3/library/concurrency.html#concurrencyConcurrent Executiontcondition-objects(jm jn Bhttps://docs.python.org/3/library/threading.html#condition-objectsCondition Objectstconfigparser-objects(jm jn Hhttps://docs.python.org/3/library/configparser.html#configparser-objectsConfigParser Objectstconfigure-options(jm jn @https://docs.python.org/3/using/configure.html#configure-optionsConfigure Optionstconsole-objects(jm jn ;https://docs.python.org/3/library/code.html#console-objectsInteractive Console Objectstconst(jm jn 5https://docs.python.org/3/library/argparse.html#constjp t constants(jm jn 7https://docs.python.org/3/library/winreg.html#constants Constantstcontent-handler-objects(jm jn Nhttps://docs.python.org/3/library/xml.sax.handler.html#content-handler-objectsContentHandler Objectstcontents-of-module-re(jm jn ?https://docs.python.org/3/library/re.html#contents-of-module-reModule Contentst context-info(jm jn Bhttps://docs.python.org/3/howto/logging-cookbook.html#context-info4Adding contextual information to your logging outputtcontext-manager(jm jn Ehttps://docs.python.org/3/howto/logging-cookbook.html#context-manager-Using a context manager for selective loggingtcontext-manager-types(jm jn Chttps://docs.python.org/3/library/typing.html#context-manager-typesAliases to contextlib ABCstcontext-managers(jm jn Chttps://docs.python.org/3/reference/datamodel.html#context-managersWith Statement Context Managerst contextlibmod(jm jn 9https://docs.python.org/3/whatsnew/2.5.html#contextlibmodThe contextlib moduletcontextvarsobjects(jm jn Chttps://docs.python.org/3/c-api/contextvars.html#contextvarsobjectsContext Variables Objectst%contextvarsobjects_pointertype_change(jm jn Vhttps://docs.python.org/3/c-api/contextvars.html#contextvarsobjects-pointertype-changejp tcontinue(jm jn >https://docs.python.org/3/reference/simple_stmts.html#continueThe continue statementtcontributing-to-python(jm jn :https://docs.python.org/3/bugs.html#contributing-to-python/Getting started contributing to Python yourselft conversions(jm jn @https://docs.python.org/3/reference/expressions.html#conversionsArithmetic conversionstconverting-argument-sequence(jm jn Nhttps://docs.python.org/3/library/subprocess.html#converting-argument-sequence6Converting an argument sequence to a string on Windowstcookbook-ref-links(jm jn Hhttps://docs.python.org/3/howto/logging-cookbook.html#cookbook-ref-linksOther resourcestcookbook-rotator-namer(jm jn Lhttps://docs.python.org/3/howto/logging-cookbook.html#cookbook-rotator-namer>Using a rotator and namer to customize log rotation processingtcookie-example(jm jn Bhttps://docs.python.org/3/library/http.cookies.html#cookie-exampleExampletcookie-jar-objects(jm jn Hhttps://docs.python.org/3/library/http.cookiejar.html#cookie-jar-objects#CookieJar and FileCookieJar Objectstcookie-objects(jm jn Bhttps://docs.python.org/3/library/http.cookies.html#cookie-objectsCookie Objectstcookie-policy-objects(jm jn Khttps://docs.python.org/3/library/http.cookiejar.html#cookie-policy-objectsCookiePolicy Objectst coro-objects(jm jn 6https://docs.python.org/3/c-api/coro.html#coro-objectsCoroutine Objectst coroutine(jm jn =https://docs.python.org/3/library/asyncio-task.html#coroutine Coroutinestcoroutine-objects(jm jn Dhttps://docs.python.org/3/reference/datamodel.html#coroutine-objectsCoroutine Objectstcorresponding-to-built-in-types(jm jn Mhttps://docs.python.org/3/library/typing.html#corresponding-to-built-in-typesAliases to built-in typest/corresponding-to-collections-in-collections-abc(jm jn ]https://docs.python.org/3/library/typing.html#corresponding-to-collections-in-collections-abc,Aliases to container ABCs in collections.abct/corresponding-to-other-types-in-collections-abc(jm jn ]https://docs.python.org/3/library/typing.html#corresponding-to-other-types-in-collections-abc(Aliases to other ABCs in collections.abct%corresponding-to-types-in-collections(jm jn Shttps://docs.python.org/3/library/typing.html#corresponding-to-types-in-collectionsAliases to types in collectionst countingrefs(jm jn =https://docs.python.org/3/c-api/refcounting.html#countingrefsReference Countingt cplusplus(jm jn https://docs.python.org/3/library/ctypes.html#ctypes-surprises Surprisestctypes-type-conversions(jm jn Ehttps://docs.python.org/3/library/ctypes.html#ctypes-type-conversionsType conversionstctypes-utility-functions(jm jn Fhttps://docs.python.org/3/library/ctypes.html#ctypes-utility-functionsUtility functionst ctypes-variable-sized-data-types(jm jn Nhttps://docs.python.org/3/library/ctypes.html#ctypes-variable-sized-data-typesVariable-sized data typestcurses-acs-codes(jm jn >https://docs.python.org/3/library/curses.html#curses-acs-codesjp tcurses-functions(jm jn >https://docs.python.org/3/library/curses.html#curses-functions Functionst curses-howto(jm jn 8https://docs.python.org/3/howto/curses.html#curses-howtoCurses Programming with Pythontcurses-panel-objects(jm jn Hhttps://docs.python.org/3/library/curses.panel.html#curses-panel-objects Panel Objectstcurses-textpad-objects(jm jn Dhttps://docs.python.org/3/library/curses.html#curses-textpad-objectsTextbox objectstcurses-window-objects(jm jn Chttps://docs.python.org/3/library/curses.html#curses-window-objectsWindow Objectstcursespanel-functions(jm jn Ihttps://docs.python.org/3/library/curses.panel.html#cursespanel-functions Functionstcustom-format-exception(jm jn Mhttps://docs.python.org/3/howto/logging-cookbook.html#custom-format-exceptionCustomized exception formattingtcustom-handlers(jm jn Ehttps://docs.python.org/3/howto/logging-cookbook.html#custom-handlers&Customizing handlers with dictConfig()tcustom-level-handling(jm jn Khttps://docs.python.org/3/howto/logging-cookbook.html#custom-level-handlingCustom handling of levelst custom-levels(jm jn :https://docs.python.org/3/howto/logging.html#custom-levels Custom Levelstcustom-logrecord(jm jn Fhttps://docs.python.org/3/howto/logging-cookbook.html#custom-logrecordCustomizing LogRecordt custominterp(jm jn @https://docs.python.org/3/library/custominterp.html#custominterpCustom Python Interpreterst customization(jm jn @https://docs.python.org/3/reference/datamodel.html#customizationBasic customizationtcustomize-memory-allocators(jm jn Ghttps://docs.python.org/3/c-api/memory.html#customize-memory-allocatorsCustomize Memory Allocatorstdata-handler-objects(jm jn Jhttps://docs.python.org/3/library/urllib.request.html#data-handler-objectsDataHandler Objectstdatabase-objects(jm jn >https://docs.python.org/3/library/msilib.html#database-objectsDatabase Objectstdatagram-handler(jm jn Hhttps://docs.python.org/3/library/logging.handlers.html#datagram-handlerDatagramHandlert datamodel(jm jn https://docs.python.org/3/library/decimal.html#decimal-contextContext objectstdecimal-decimal(jm jn >https://docs.python.org/3/library/decimal.html#decimal-decimalDecimal objectst decimal-faq(jm jn :https://docs.python.org/3/library/decimal.html#decimal-faq Decimal FAQt decimal-notes(jm jn https://docs.python.org/3/library/decimal.html#decimal-recipesRecipestdecimal-rounding-modes(jm jn Ehttps://docs.python.org/3/library/decimal.html#decimal-rounding-modes Constantstdecimal-signals(jm jn >https://docs.python.org/3/library/decimal.html#decimal-signalsSignalstdecimal-threads(jm jn >https://docs.python.org/3/library/decimal.html#decimal-threadsWorking with threadstdecimal-tutorial(jm jn ?https://docs.python.org/3/library/decimal.html#decimal-tutorialQuick-start Tutorialtdecompress-wbits(jm jn https://docs.python.org/3/reference/datamodel.html#descriptorsImplementing Descriptorstdest(jm jn 4https://docs.python.org/3/library/argparse.html#destjp tdeterministic-profiling(jm jn Fhttps://docs.python.org/3/library/profile.html#deterministic-profiling What Is Deterministic Profiling?t development(jm jn >https://docs.python.org/3/library/development.html#developmentDevelopment Toolstdevmode(jm jn 6https://docs.python.org/3/library/devmode.html#devmodePython Development Modetdevpoll-objects(jm jn =https://docs.python.org/3/library/select.html#devpoll-objects/dev/poll Polling Objectstdict(jm jn 9https://docs.python.org/3/reference/expressions.html#dictDictionary displayst dict-views(jm jn :https://docs.python.org/3/library/stdtypes.html#dict-viewsDictionary view objectst dictobjects(jm jn 5https://docs.python.org/3/c-api/dict.html#dictobjectsDictionary Objectstdiffer-examples(jm jn >https://docs.python.org/3/library/difflib.html#differ-examplesDiffer Exampletdiffer-objects(jm jn =https://docs.python.org/3/library/difflib.html#differ-objectsDiffer Objectstdifflib-interface(jm jn @https://docs.python.org/3/library/difflib.html#difflib-interface#A command-line interface to difflibtdir_fd(jm jn 0https://docs.python.org/3/library/os.html#dir-fdjp tdircmp-objects(jm jn =https://docs.python.org/3/library/filecmp.html#dircmp-objectsThe dircmp classtdisable_posix_spawn(jm jn Ehttps://docs.python.org/3/library/subprocess.html#disable-posix-spawn)Disabling use of vfork() or posix_spawn()t disable_vfork(jm jn ?https://docs.python.org/3/library/subprocess.html#disable-vfork)Disabling use of vfork() or posix_spawn()tdistinct(jm jn 6https://docs.python.org/3/library/typing.html#distinctNewTypet distributing(jm jn >https://docs.python.org/3/extending/building.html#distributing#Distributing your extension modulestdistributing-index(jm jn Dhttps://docs.python.org/3/distributing/index.html#distributing-indexDistributing Python Modulest distributions(jm jn Ghttps://docs.python.org/3/library/importlib.metadata.html#distributions Distributionstdistutils-additional-files(jm jn Ohttps://docs.python.org/3/distutils/setupscript.html#distutils-additional-filesInstalling Additional Filestdistutils-build-ext-inplace(jm jn Ohttps://docs.python.org/3/distutils/configfile.html#distutils-build-ext-inplacejp tdistutils-concepts(jm jn Hhttps://docs.python.org/3/distutils/introduction.html#distutils-conceptsConcepts & Terminologytdistutils-deprecated(jm jn Ahttps://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated distutilstdistutils-index(jm jn >https://docs.python.org/3/distutils/index.html#distutils-index,Distributing Python Modules (Legacy version)t!distutils-installing-package-data(jm jn Vhttps://docs.python.org/3/distutils/setupscript.html#distutils-installing-package-dataInstalling Package Datatdistutils-installing-scripts(jm jn Qhttps://docs.python.org/3/distutils/setupscript.html#distutils-installing-scriptsInstalling Scriptstdistutils-intro(jm jn Ehttps://docs.python.org/3/distutils/introduction.html#distutils-introAn Introduction to Distutilstdistutils-simple-example(jm jn Nhttps://docs.python.org/3/distutils/introduction.html#distutils-simple-exampleA Simple Exampletdistutils-term(jm jn Dhttps://docs.python.org/3/distutils/introduction.html#distutils-termDistutils-specific terminologytdistutils_examples(jm jn Dhttps://docs.python.org/3/distutils/examples.html#distutils-examplesDistutils Examplest dnt-basics(jm jn Ehttps://docs.python.org/3/extending/newtypes_tutorial.html#dnt-basics The Basicstdnt-type-methods(jm jn Bhttps://docs.python.org/3/extending/newtypes.html#dnt-type-methodsjp tdoc-xmlrpc-servers(jm jn Ghttps://docs.python.org/3/library/xmlrpc.server.html#doc-xmlrpc-serversDocXMLRPCServer Objectstdoctest-advanced-api(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest-advanced-api Advanced APItdoctest-basic-api(jm jn @https://docs.python.org/3/library/doctest.html#doctest-basic-api Basic APItdoctest-debugging(jm jn @https://docs.python.org/3/library/doctest.html#doctest-debugging Debuggingtdoctest-directives(jm jn Ahttps://docs.python.org/3/library/doctest.html#doctest-directives Directivestdoctest-doctest(jm jn >https://docs.python.org/3/library/doctest.html#doctest-doctestDocTest Objectstdoctest-doctestfinder(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest-doctestfinderDocTestFinder objectstdoctest-doctestparser(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest-doctestparserDocTestParser objectstdoctest-doctestrunner(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest-doctestrunnerDocTestRunner objectstdoctest-example(jm jn >https://docs.python.org/3/library/doctest.html#doctest-exampleExample Objectstdoctest-exceptions(jm jn Ahttps://docs.python.org/3/library/doctest.html#doctest-exceptionsWhat About Exceptions?tdoctest-execution-context(jm jn Hhttps://docs.python.org/3/library/doctest.html#doctest-execution-contextWhat’s the Execution Context?tdoctest-finding-examples(jm jn Ghttps://docs.python.org/3/library/doctest.html#doctest-finding-examples&How are Docstring Examples Recognized?tdoctest-how-it-works(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest-how-it-works How It Workstdoctest-options(jm jn >https://docs.python.org/3/library/doctest.html#doctest-options Option Flagstdoctest-outputchecker(jm jn Dhttps://docs.python.org/3/library/doctest.html#doctest-outputcheckerOutputChecker objectstdoctest-simple-testfile(jm jn Fhttps://docs.python.org/3/library/doctest.html#doctest-simple-testfile.Simple Usage: Checking Examples in a Text Filetdoctest-simple-testmod(jm jn Ehttps://docs.python.org/3/library/doctest.html#doctest-simple-testmod-Simple Usage: Checking Examples in Docstringstdoctest-soapbox(jm jn >https://docs.python.org/3/library/doctest.html#doctest-soapboxSoapboxtdoctest-unittest-api(jm jn Chttps://docs.python.org/3/library/doctest.html#doctest-unittest-api Unittest APItdoctest-warnings(jm jn ?https://docs.python.org/3/library/doctest.html#doctest-warningsWarningstdoctest-which-docstrings(jm jn Ghttps://docs.python.org/3/library/doctest.html#doctest-which-docstringsWhich Docstrings Are Examined?tdom-accessor-methods(jm jn Chttps://docs.python.org/3/library/xml.dom.html#dom-accessor-methodsAccessor Methodstdom-attr-objects(jm jn ?https://docs.python.org/3/library/xml.dom.html#dom-attr-objects Attr Objectstdom-attributelist-objects(jm jn Hhttps://docs.python.org/3/library/xml.dom.html#dom-attributelist-objectsNamedNodeMap Objectstdom-comment-objects(jm jn Bhttps://docs.python.org/3/library/xml.dom.html#dom-comment-objectsComment Objectstdom-conformance(jm jn >https://docs.python.org/3/library/xml.dom.html#dom-conformance Conformancetdom-document-objects(jm jn Chttps://docs.python.org/3/library/xml.dom.html#dom-document-objectsDocument Objectstdom-documenttype-objects(jm jn Ghttps://docs.python.org/3/library/xml.dom.html#dom-documenttype-objectsDocumentType Objectstdom-element-objects(jm jn Bhttps://docs.python.org/3/library/xml.dom.html#dom-element-objectsElement Objectst dom-example(jm jn Bhttps://docs.python.org/3/library/xml.dom.minidom.html#dom-example DOM Exampletdom-exceptions(jm jn =https://docs.python.org/3/library/xml.dom.html#dom-exceptions Exceptionstdom-implementation-objects(jm jn Ihttps://docs.python.org/3/library/xml.dom.html#dom-implementation-objectsDOMImplementation Objectstdom-node-objects(jm jn ?https://docs.python.org/3/library/xml.dom.html#dom-node-objects Node Objectstdom-nodelist-objects(jm jn Chttps://docs.python.org/3/library/xml.dom.html#dom-nodelist-objectsNodeList Objectst dom-objects(jm jn :https://docs.python.org/3/library/xml.dom.html#dom-objectsObjects in the DOMtdom-pi-objects(jm jn =https://docs.python.org/3/library/xml.dom.html#dom-pi-objectsProcessingInstruction Objectstdom-text-objects(jm jn ?https://docs.python.org/3/library/xml.dom.html#dom-text-objectsText and CDATASection Objectstdom-type-mapping(jm jn ?https://docs.python.org/3/library/xml.dom.html#dom-type-mapping Type Mappingtdomeventstream-objects(jm jn Mhttps://docs.python.org/3/library/xml.dom.pulldom.html#domeventstream-objectsDOMEventStream Objectstdtd-handler-objects(jm jn Jhttps://docs.python.org/3/library/xml.sax.handler.html#dtd-handler-objectsDTDHandler Objectstdynamic-features(jm jn Hhttps://docs.python.org/3/reference/executionmodel.html#dynamic-features!Interaction with dynamic featurestdynamic-linking(jm jn @https://docs.python.org/3/extending/windows.html#dynamic-linking$Differences Between Unix and Windowstediting-and-navigation(jm jn Bhttps://docs.python.org/3/library/idle.html#editing-and-navigationEditing and Navigationteditors(jm jn 4https://docs.python.org/3/using/editors.html#editorsEditors and IDEstefficient_string_concatenation(jm jn Mhttps://docs.python.org/3/faq/programming.html#efficient-string-concatenationDWhat is the most efficient way to concatenate many strings together?telementinclude-functions(jm jn Uhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementinclude-functions Functionstelementtree-element-objects(jm jn Xhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-element-objectsElement Objectstelementtree-elementtree-objects(jm jn \https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-elementtree-objectsElementTree Objectstelementtree-functions(jm jn Rhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-functions Functionstelementtree-parsing-xml(jm jn Thttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-parsing-xml Parsing XMLtelementtree-pull-parsing(jm jn Uhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-pull-parsing!Pull API for non-blocking parsingtelementtree-qname-objects(jm jn Vhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-qname-objects QName Objectstelementtree-section(jm jn ?https://docs.python.org/3/whatsnew/2.7.html#elementtree-sectionUpdated module: ElementTree 1.3telementtree-treebuilder-objects(jm jn \https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-treebuilder-objectsTreeBuilder Objectstelementtree-xinclude(jm jn Qhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xincludeXInclude supporttelementtree-xmlparser-objects(jm jn Zhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlparser-objectsXMLParser Objectst!elementtree-xmlpullparser-objects(jm jn ^https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlpullparser-objectsXMLPullParser Objectstelementtree-xpath(jm jn Nhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpath XPath supporttelif(jm jn https://docs.python.org/3/library/locale.html#embedding-locale4For extension writers and programs that embed Pythontembeddingincplusplus(jm jn Ghttps://docs.python.org/3/extending/embedding.html#embeddingincplusplusEmbedding Python in C++t encodings(jm jn Chttps://docs.python.org/3/reference/lexical_analysis.html#encodingsEncoding declarationstencodings-overview(jm jn @https://docs.python.org/3/library/codecs.html#encodings-overviewEncodings and Unicodetentity-resolver-objects(jm jn Nhttps://docs.python.org/3/library/xml.sax.handler.html#entity-resolver-objectsEntityResolver Objectst entry-points(jm jn Fhttps://docs.python.org/3/library/importlib.metadata.html#entry-points Entry pointstenum-advanced-tutorial(jm jn @https://docs.python.org/3/howto/enum.html#enum-advanced-tutorial?Programmatic access to enumeration members and their attributestenum-basic-tutorial(jm jn =https://docs.python.org/3/howto/enum.html#enum-basic-tutorialjp tenum-class-differences(jm jn @https://docs.python.org/3/howto/enum.html#enum-class-differences"How are Enums and Flags different?t enum-cookbook(jm jn 7https://docs.python.org/3/howto/enum.html#enum-cookbook Enum Cookbooktenum-time-period(jm jn :https://docs.python.org/3/howto/enum.html#enum-time-period TimePeriodtenumtype-examples(jm jn ;https://docs.python.org/3/howto/enum.html#enumtype-examplesSubclassing EnumTypetepoch(jm jn 1https://docs.python.org/3/library/time.html#epochjp t epoll-objects(jm jn ;https://docs.python.org/3/library/select.html#epoll-objects.Edge and Level Trigger Polling (epoll) Objectsterror-handlers(jm jn https://docs.python.org/3/reference/expressions.html#evalorderEvaluation ordert event-objects(jm jn >https://docs.python.org/3/library/threading.html#event-objects Event Objectst examples-imp(jm jn 7https://docs.python.org/3/library/imp.html#examples-impExamplestexcept(jm jn >https://docs.python.org/3/reference/compound_stmts.html#except except clauset except_else(jm jn Chttps://docs.python.org/3/reference/compound_stmts.html#except-else else clauset except_star(jm jn Chttps://docs.python.org/3/reference/compound_stmts.html#except-starexcept* clausetexception-changed(jm jn ?https://docs.python.org/3/library/winreg.html#exception-changedjp texceptionhandling(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#exceptionhandlingException Handlingt exceptions(jm jn Bhttps://docs.python.org/3/reference/executionmodel.html#exceptions Exceptionst execmodel(jm jn Ahttps://docs.python.org/3/reference/executionmodel.html#execmodelExecution modeltexpat-content-models(jm jn Chttps://docs.python.org/3/library/pyexpat.html#expat-content-modelsContent Model Descriptionst expat-errors(jm jn ;https://docs.python.org/3/library/pyexpat.html#expat-errorsExpat error constantst expat-example(jm jn https://docs.python.org/3/reference/expressions.html#exprlistsExpression listst exprstmts(jm jn ?https://docs.python.org/3/reference/simple_stmts.html#exprstmtsExpression statementstextending-distutils(jm jn Fhttps://docs.python.org/3/distutils/extending.html#extending-distutilsExtending Distutilstextending-errors(jm jn Chttps://docs.python.org/3/extending/extending.html#extending-errors!Intermezzo: Errors and Exceptionstextending-index(jm jn >https://docs.python.org/3/extending/index.html#extending-index.Extending and Embedding the Python Interpretertextending-intro(jm jn Bhttps://docs.python.org/3/extending/extending.html#extending-introExtending Python with C or C++textending-simpleexample(jm jn Jhttps://docs.python.org/3/extending/extending.html#extending-simpleexampleA Simple Exampletextending-with-embedding(jm jn Khttps://docs.python.org/3/extending/embedding.html#extending-with-embeddingExtending Embedded Pythont f-strings(jm jn Chttps://docs.python.org/3/reference/lexical_analysis.html#f-stringsFormatted string literalstfaq-argument-vs-parameter(jm jn Hhttps://docs.python.org/3/faq/programming.html#faq-argument-vs-parameter8What is the difference between arguments and parameters?t$faq-augmented-assignment-tuple-error(jm jn Shttps://docs.python.org/3/faq/programming.html#faq-augmented-assignment-tuple-errorOWhy does a_tuple[i] += [‘item’] raise an exception when the addition works?tfaq-cache-method-calls(jm jn Ehttps://docs.python.org/3/faq/programming.html#faq-cache-method-callsHow do I cache method calls?tfaq-create-standalone-binary(jm jn Khttps://docs.python.org/3/faq/programming.html#faq-create-standalone-binary;How can I create a stand-alone binary from a Python script?t faq-index(jm jn 2https://docs.python.org/3/faq/index.html#faq-index!Python Frequently Asked Questionstfaq-multidimensional-list(jm jn Hhttps://docs.python.org/3/faq/programming.html#faq-multidimensional-list(How do I create a multidimensional list?tfaq-positional-only-arguments(jm jn Lhttps://docs.python.org/3/faq/programming.html#faq-positional-only-arguments@What does the slash(/) in the parameter list of a function mean?t$faq-programming-raw-string-backslash(jm jn Shttps://docs.python.org/3/faq/programming.html#faq-programming-raw-string-backslash9Can I end a raw string with an odd number of backslashes?tfaq-run-program-under-windows(jm jn Hhttps://docs.python.org/3/faq/windows.html#faq-run-program-under-windows,How do I run a Python program under Windows?tfaq-unboundlocalerror(jm jn Dhttps://docs.python.org/3/faq/programming.html#faq-unboundlocalerrorDWhy am I getting an UnboundLocalError when the variable has a value?tfaster-cpython-faq-memory(jm jn Fhttps://docs.python.org/3/whatsnew/3.11.html#faster-cpython-faq-memory"Will CPython 3.11 use more memory?tfaster-cpython-faq-my-code(jm jn Ghttps://docs.python.org/3/whatsnew/3.11.html#faster-cpython-faq-my-code5How should I write my code to utilize these speedups?tfaster-cpython-jit(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#faster-cpython-jitIs there a JIT compiler?tfaster-cpython-ymmv(jm jn @https://docs.python.org/3/whatsnew/3.11.html#faster-cpython-ymmv/I don’t see any speedups in my workload. Why?t fault-objects(jm jn Bhttps://docs.python.org/3/library/xmlrpc.client.html#fault-objects Fault Objectstfaulthandler-fd(jm jn Chttps://docs.python.org/3/library/faulthandler.html#faulthandler-fdIssue with file descriptorstfd_inheritance(jm jn 8https://docs.python.org/3/library/os.html#fd-inheritanceInheritance of File Descriptorstfeatures(jm jn 6https://docs.python.org/3/library/msilib.html#featuresFeaturestfile-cookie-jar-classes(jm jn Mhttps://docs.python.org/3/library/http.cookiejar.html#file-cookie-jar-classes;FileCookieJar subclasses and co-operation with web browserst file-handler(jm jn Dhttps://docs.python.org/3/library/logging.handlers.html#file-handler FileHandlertfile-handler-objects(jm jn Jhttps://docs.python.org/3/library/urllib.request.html#file-handler-objectsFileHandler Objectst file-input(jm jn Ghttps://docs.python.org/3/reference/toplevel_components.html#file-input File inputtfile-operations(jm jn =https://docs.python.org/3/library/shutil.html#file-operationsDirectory and files operationst fileformats(jm jn >https://docs.python.org/3/library/fileformats.html#fileformats File Formatst filemodes(jm jn :https://docs.python.org/3/library/functions.html#filemodesjp t fileobjects(jm jn 5https://docs.python.org/3/c-api/file.html#fileobjects File Objectstfiles(jm jn ?https://docs.python.org/3/library/importlib.metadata.html#filesDistribution filestfilesys(jm jn 6https://docs.python.org/3/library/filesys.html#filesysFile and Directory Accesstfilesystem-encoding(jm jn =https://docs.python.org/3/library/os.html#filesystem-encoding=File Names, Command Line Arguments, and Environment Variablestfilter(jm jn 5https://docs.python.org/3/library/logging.html#filterFilter Objectstfilter-chain-specs(jm jn >https://docs.python.org/3/library/lzma.html#filter-chain-specsSpecifying custom filter chainstfilters-contextual(jm jn Hhttps://docs.python.org/3/howto/logging-cookbook.html#filters-contextual.Using Filters to impart contextual informationtfilters-dictconfig(jm jn Hhttps://docs.python.org/3/howto/logging-cookbook.html#filters-dictconfig%Configuring filters with dictConfig()tfinalize-examples(jm jn @https://docs.python.org/3/library/weakref.html#finalize-examplesFinalizer Objectstfinally(jm jn ?https://docs.python.org/3/reference/compound_stmts.html#finallyfinally clausetfinders-and-loaders(jm jn Chttps://docs.python.org/3/reference/import.html#finders-and-loadersFinders and loaderstfloating(jm jn Bhttps://docs.python.org/3/reference/lexical_analysis.html#floatingFloating point literalst floatobjects(jm jn 7https://docs.python.org/3/c-api/float.html#floatobjectsFloating Point Objectstfollow_symlinks(jm jn 9https://docs.python.org/3/library/os.html#follow-symlinksjp tfor(jm jn ;https://docs.python.org/3/reference/compound_stmts.html#forThe for statementtfork-and-threads(jm jn :https://docs.python.org/3/c-api/init.html#fork-and-threadsCautions about fork()tformat-characters(jm jn ?https://docs.python.org/3/library/struct.html#format-charactersFormat Characterst format-menu(jm jn 7https://docs.python.org/3/library/idle.html#format-menu Format menu (Editor window only)t format-styles(jm jn Chttps://docs.python.org/3/howto/logging-cookbook.html#format-styles$Use of alternative formatting stylestformatexamples(jm jn Using particular formatting styles throughout your applicationt frame-objects(jm jn @https://docs.python.org/3/reference/datamodel.html#frame-objectsjp t frameworks(jm jn https://docs.python.org/3/c-api/function.html#function-objectsFunction Objectstfunctional-howto-iterators(jm jn Jhttps://docs.python.org/3/howto/functional.html#functional-howto-iterators Iteratorst functions(jm jn 7https://docs.python.org/3/library/winreg.html#functions Functionstfunctions-in-cgi-module(jm jn Bhttps://docs.python.org/3/library/cgi.html#functions-in-cgi-module Functionst fundamental(jm jn 9https://docs.python.org/3/c-api/concrete.html#fundamentalFundamental Objectstfurther-examples(jm jn Nhttps://docs.python.org/3/library/unittest.mock-examples.html#further-examplesFurther Examplestfuture(jm jn https://docs.python.org/3/library/hashlib.html#hash-algorithmsHash algorithmsthashlib-seealso(jm jn >https://docs.python.org/3/library/hashlib.html#hashlib-seealsojp thashlib-usedforsecurity(jm jn Fhttps://docs.python.org/3/library/hashlib.html#hashlib-usedforsecurityjp t heap-types(jm jn 7https://docs.python.org/3/c-api/typeobj.html#heap-types Heap Typesthelp(jm jn 4https://docs.python.org/3/library/argparse.html#helpjp t help-sources(jm jn 8https://docs.python.org/3/library/idle.html#help-sources Help sourcesthigh-level-embedding(jm jn Ghttps://docs.python.org/3/extending/embedding.html#high-level-embeddingVery High Level Embeddingthistory-and-license(jm jn :https://docs.python.org/3/license.html#history-and-licenseHistory and Licensethkey-constants(jm jn https://docs.python.org/3/install/index.html#inst-building-ext$Building Extensions: Tips and Trickstinst-config-filenames(jm jn Bhttps://docs.python.org/3/install/index.html#inst-config-filenames"Location and names of config filestinst-config-files(jm jn >https://docs.python.org/3/install/index.html#inst-config-filesDistutils Configuration Filestinst-config-syntax(jm jn ?https://docs.python.org/3/install/index.html#inst-config-syntaxSyntax of config filestinst-custom-install(jm jn @https://docs.python.org/3/install/index.html#inst-custom-installCustom Installationtinst-how-build-works(jm jn Ahttps://docs.python.org/3/install/index.html#inst-how-build-worksHow building workstinst-how-install-works(jm jn Chttps://docs.python.org/3/install/index.html#inst-how-install-worksHow installation workst inst-intro(jm jn 7https://docs.python.org/3/install/index.html#inst-intro Introductiontinst-new-standard(jm jn >https://docs.python.org/3/install/index.html#inst-new-standard$Distutils based source distributionstinst-non-ms-compilers(jm jn Bhttps://docs.python.org/3/install/index.html#inst-non-ms-compilers(Using non-Microsoft compilers on Windowstinst-platform-variations(jm jn Ehttps://docs.python.org/3/install/index.html#inst-platform-variationsPlatform variationstinst-search-path(jm jn =https://docs.python.org/3/install/index.html#inst-search-path Modifying Python’s Search Pathtinst-splitting-up(jm jn >https://docs.python.org/3/install/index.html#inst-splitting-upSplitting the job uptinst-standard-install(jm jn Bhttps://docs.python.org/3/install/index.html#inst-standard-installStandard Build and Installtinst-tweak-flags(jm jn =https://docs.python.org/3/install/index.html#inst-tweak-flagsTweaking compiler/linker flagst install-cmd(jm jn ?https://docs.python.org/3/distutils/commandref.html#install-cmd.Installing modules: the install command familytinstall-data-cmd(jm jn Dhttps://docs.python.org/3/distutils/commandref.html#install-data-cmd install_datat install-index(jm jn :https://docs.python.org/3/install/index.html#install-index*Installing Python Modules (Legacy version)tinstall-layout-option(jm jn Bhttps://docs.python.org/3/using/windows.html#install-layout-optionInstalling Without Downloadingtinstall-quiet-option(jm jn Ahttps://docs.python.org/3/using/windows.html#install-quiet-optionInstalling Without UItinstall-scripts-cmd(jm jn Ghttps://docs.python.org/3/distutils/commandref.html#install-scripts-cmdinstall_scriptstinstallation_paths(jm jn Chttps://docs.python.org/3/library/sysconfig.html#installation-pathsInstallation pathstinstalling-index(jm jn @https://docs.python.org/3/installing/index.html#installing-indexInstalling Python Modulestinstancemethod-objects(jm jn Bhttps://docs.python.org/3/c-api/method.html#instancemethod-objectsInstance Method Objectstinstrumentation(jm jn Dhttps://docs.python.org/3/howto/instrumentation.html#instrumentation/Instrumenting CPython with DTrace and SystemTaptint_max_str_digits(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#int-max-str-digits+Integer string conversion length limitationtintegers(jm jn Bhttps://docs.python.org/3/reference/lexical_analysis.html#integersInteger literalst interactive(jm jn Hhttps://docs.python.org/3/reference/toplevel_components.html#interactiveInteractive inputtinternet(jm jn 8https://docs.python.org/3/library/internet.html#internetInternet Protocols and Supporttinterpreter-objects(jm jn ?https://docs.python.org/3/library/code.html#interpreter-objectsInteractive Interpreter Objectstintra-package-references(jm jn Hhttps://docs.python.org/3/tutorial/modules.html#intra-package-referencesIntra-package Referencest introduction(jm jn Bhttps://docs.python.org/3/reference/introduction.html#introduction Introductiontio-encoding-warning(jm jn =https://docs.python.org/3/library/io.html#io-encoding-warningOpt-in EncodingWarningt io-overview(jm jn 5https://docs.python.org/3/library/io.html#io-overviewOverviewtio-text-encoding(jm jn :https://docs.python.org/3/library/io.html#io-text-encoding Text Encodingtipaddress-howto(jm jn >https://docs.python.org/3/howto/ipaddress.html#ipaddress-howto'An introduction to the ipaddress moduletipc(jm jn .https://docs.python.org/3/library/ipc.html#ipc)Networking and Interprocess Communicationtirrefutable_case(jm jn Hhttps://docs.python.org/3/reference/compound_stmts.html#irrefutable-caseIrrefutable Case Blockstis(jm jn 7https://docs.python.org/3/reference/expressions.html#isIdentity comparisonstis not(jm jn ;https://docs.python.org/3/reference/expressions.html#is-notIdentity comparisonstiterator(jm jn 2https://docs.python.org/3/c-api/iter.html#iteratorIterator Protocoltiterator-objects(jm jn >https://docs.python.org/3/c-api/iterator.html#iterator-objectsIterator Objectstitertools-functions(jm jn Dhttps://docs.python.org/3/library/itertools.html#itertools-functionsItertool functionstitertools-recipes(jm jn Bhttps://docs.python.org/3/library/itertools.html#itertools-recipesItertools Recipestjson-commandline(jm jn https://docs.python.org/3/glossary.html#keyword-only-parameterjp tkeywords(jm jn Bhttps://docs.python.org/3/reference/lexical_analysis.html#keywordsKeywordstkqueue-objects(jm jn https://docs.python.org/3/library/mailbox.html#mailbox-maildirMaildirtmailbox-maildirmessage(jm jn Ehttps://docs.python.org/3/library/mailbox.html#mailbox-maildirmessageMaildirMessaget mailbox-mbox(jm jn ;https://docs.python.org/3/library/mailbox.html#mailbox-mboxmboxtmailbox-mboxmessage(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox-mboxmessage mboxMessagetmailbox-message-objects(jm jn Fhttps://docs.python.org/3/library/mailbox.html#mailbox-message-objectsMessage objectst mailbox-mh(jm jn 9https://docs.python.org/3/library/mailbox.html#mailbox-mhMHtmailbox-mhmessage(jm jn @https://docs.python.org/3/library/mailbox.html#mailbox-mhmessage MHMessaget mailbox-mmdf(jm jn ;https://docs.python.org/3/library/mailbox.html#mailbox-mmdfMMDFtmailbox-mmdfmessage(jm jn Bhttps://docs.python.org/3/library/mailbox.html#mailbox-mmdfmessage MMDFMessagetmailbox-objects(jm jn >https://docs.python.org/3/library/mailbox.html#mailbox-objectsMailbox objectst main_spec(jm jn 9https://docs.python.org/3/reference/import.html#main-spec__main__.__spec__tmanifest(jm jn https://docs.python.org/3/c-api/marshal.html#marshalling-utilsData marshalling supporttmatch(jm jn =https://docs.python.org/3/reference/compound_stmts.html#matchThe match statementt match-objects(jm jn 7https://docs.python.org/3/library/re.html#match-objects Match Objectstmax-path(jm jn 5https://docs.python.org/3/using/windows.html#max-path Removing the MAX_PATH Limitationtmembership-test-details(jm jn Lhttps://docs.python.org/3/reference/expressions.html#membership-test-detailsMembership test operationstmemory(jm jn 2https://docs.python.org/3/c-api/memory.html#memoryMemory Managementtmemory-handler(jm jn Fhttps://docs.python.org/3/library/logging.handlers.html#memory-handler MemoryHandlertmemoryexamples(jm jn :https://docs.python.org/3/c-api/memory.html#memoryexamplesExamplestmemoryinterface(jm jn ;https://docs.python.org/3/c-api/memory.html#memoryinterfaceMemory Interfacetmemoryoverview(jm jn :https://docs.python.org/3/c-api/memory.html#memoryoverviewOverviewtmemoryview-objects(jm jn Bhttps://docs.python.org/3/c-api/memoryview.html#memoryview-objectsjp t meta-data(jm jn >https://docs.python.org/3/distutils/setupscript.html#meta-dataAdditional meta-datat metaclasses(jm jn >https://docs.python.org/3/reference/datamodel.html#metaclasses Metaclassestmetadata(jm jn Bhttps://docs.python.org/3/library/importlib.metadata.html#metadataDistribution metadatatmetavar(jm jn 7https://docs.python.org/3/library/argparse.html#metavarjp t meth-str-join(jm jn =https://docs.python.org/3/library/stdtypes.html#meth-str-joinjp tmeth-thread-join(jm jn Ahttps://docs.python.org/3/library/threading.html#meth-thread-joinjp tmeth_fastcall-meth_keywords(jm jn Khttps://docs.python.org/3/c-api/structures.html#meth-fastcall-meth-keywordsjp t'meth_method-meth_fastcall-meth_keywords(jm jn Whttps://docs.python.org/3/c-api/structures.html#meth-method-meth-fastcall-meth-keywordsjp tmeth_varargs-meth_keywords(jm jn Jhttps://docs.python.org/3/c-api/structures.html#meth-varargs-meth-keywordsjp tmethod-objects(jm jn :https://docs.python.org/3/c-api/method.html#method-objectsMethod Objectst methodtable(jm jn >https://docs.python.org/3/extending/extending.html#methodtable7The Module’s Method Table and Initialization Functiontmimetypes-objects(jm jn Bhttps://docs.python.org/3/library/mimetypes.html#mimetypes-objectsMimeTypes Objectstminidom-and-dom(jm jn Fhttps://docs.python.org/3/library/xml.dom.minidom.html#minidom-and-domminidom and the DOM standardtminidom-objects(jm jn Fhttps://docs.python.org/3/library/xml.dom.minidom.html#minidom-objects DOM Objectstmixer-device-objects(jm jn Ghttps://docs.python.org/3/library/ossaudiodev.html#mixer-device-objectsMixer Device Objectstmkdir_modebits(jm jn 8https://docs.python.org/3/library/os.html#mkdir-modebitsjp tmmedia(jm jn 0https://docs.python.org/3/library/mm.html#mmediaMultimedia Servicest mod-weakref(jm jn :https://docs.python.org/3/library/weakref.html#mod-weakrefweakref — Weak referencestmodindex(jm jn *https://docs.python.org/3/py-modindex.html Module Indext module-ctypes(jm jn 9https://docs.python.org/3/whatsnew/2.5.html#module-ctypesThe ctypes packaget module-etree(jm jn 8https://docs.python.org/3/whatsnew/2.5.html#module-etreeThe ElementTree packagetmodule-hashlib(jm jn :https://docs.python.org/3/whatsnew/2.5.html#module-hashlibThe hashlib packaget module-sqlite(jm jn 9https://docs.python.org/3/whatsnew/2.5.html#module-sqliteThe sqlite3 packagetmodule-wsgiref(jm jn :https://docs.python.org/3/whatsnew/2.5.html#module-wsgirefThe wsgiref packagetmodulefinder-example(jm jn Hhttps://docs.python.org/3/library/modulefinder.html#modulefinder-exampleExample usage of ModuleFindert moduleobjects(jm jn 9https://docs.python.org/3/c-api/module.html#moduleobjectsModule Objectstmodules(jm jn 6https://docs.python.org/3/library/modules.html#modulesImporting Modulestmore-metacharacters(jm jn >https://docs.python.org/3/howto/regex.html#more-metacharactersMore Metacharacterstmorsel-objects(jm jn Bhttps://docs.python.org/3/library/http.cookies.html#morsel-objectsMorsel Objectst msi-directory(jm jn ;https://docs.python.org/3/library/msilib.html#msi-directoryDirectory Objectst msi-errors(jm jn 8https://docs.python.org/3/library/msilib.html#msi-errorsErrorstmsi-gui(jm jn 5https://docs.python.org/3/library/msilib.html#msi-gui GUI classest msi-tables(jm jn 8https://docs.python.org/3/library/msilib.html#msi-tablesPrecomputed tablestmsvcrt-console(jm jn https://docs.python.org/3/reference/executionmodel.html#namingNaming and bindingtnargs(jm jn 5https://docs.python.org/3/library/argparse.html#nargsjp tnetdata(jm jn 6https://docs.python.org/3/library/netdata.html#netdataInternet Data Handlingt netrc-objects(jm jn :https://docs.python.org/3/library/netrc.html#netrc-objects netrc Objectstnetwork-logging(jm jn Ehttps://docs.python.org/3/howto/logging-cookbook.html#network-logging5Sending and receiving logging events across a networktnew-25-context-managers(jm jn Chttps://docs.python.org/3/whatsnew/2.5.html#new-25-context-managersWriting Context Managerstnew-26-context-managers(jm jn Chttps://docs.python.org/3/whatsnew/2.6.html#new-26-context-managersWriting Context Managerstnew-26-interpreter(jm jn >https://docs.python.org/3/whatsnew/2.6.html#new-26-interpreterInterpreter Changestnew-27-interpreter(jm jn >https://docs.python.org/3/whatsnew/2.7.html#new-27-interpreterInterpreter Changest new-decimal(jm jn 7https://docs.python.org/3/whatsnew/3.3.html#new-decimaldecimalt new-email(jm jn 5https://docs.python.org/3/whatsnew/3.3.html#new-emailemailtnew-feat-related-type-hints(jm jn Hhttps://docs.python.org/3/whatsnew/3.10.html#new-feat-related-type-hints"New Features Related to Type Hintstnew-feat-related-type-hints-311(jm jn Lhttps://docs.python.org/3/whatsnew/3.11.html#new-feat-related-type-hints-311"New Features Related to Type Hintstnew-module-contextlib(jm jn Ahttps://docs.python.org/3/whatsnew/2.6.html#new-module-contextlibThe contextlib moduletnew-types-topics(jm jn Bhttps://docs.python.org/3/extending/newtypes.html#new-types-topics)Defining Extension Types: Assorted Topicstnewtypes(jm jn 5https://docs.python.org/3/c-api/objimpl.html#newtypesObject Implementation Supportt nntp-objects(jm jn ;https://docs.python.org/3/library/nntplib.html#nntp-objects NNTP Objectst noneobject(jm jn 4https://docs.python.org/3/c-api/none.html#noneobjectThe None Objecttnonlocal(jm jn >https://docs.python.org/3/reference/simple_stmts.html#nonlocalThe nonlocal statementtnot(jm jn 8https://docs.python.org/3/reference/expressions.html#notBoolean operationstnot in(jm jn ;https://docs.python.org/3/reference/expressions.html#not-inMembership test operationstnotation(jm jn >https://docs.python.org/3/reference/introduction.html#notationNotationtnote(jm jn 2https://docs.python.org/3/library/turtle.html#notejp tnt-eventlog-handler(jm jn Khttps://docs.python.org/3/library/logging.handlers.html#nt-eventlog-handlerNTEventLogHandlert null-handler(jm jn Dhttps://docs.python.org/3/library/logging.handlers.html#null-handler NullHandlert nullpointers(jm jn ?https://docs.python.org/3/extending/extending.html#nullpointers NULL Pointerstnumber(jm jn 2https://docs.python.org/3/c-api/number.html#numberNumber Protocoltnumber-structs(jm jn ;https://docs.python.org/3/c-api/typeobj.html#number-structsNumber Object Structurestnumbers(jm jn Ahttps://docs.python.org/3/reference/lexical_analysis.html#numbersNumeric literalstnumeric(jm jn 6https://docs.python.org/3/library/numeric.html#numeric Numeric and Mathematical Modulest numeric-hash(jm jn https://docs.python.org/3/library/persistence.html#persistenceData Persistencetphysical-lines(jm jn Hhttps://docs.python.org/3/reference/lexical_analysis.html#physical-linesPhysical linestpickle-dispatch(jm jn =https://docs.python.org/3/library/pickle.html#pickle-dispatchDispatch Tablestpickle-example(jm jn https://docs.python.org/3/library/pickle.html#pickle-picklable"What can be pickled and unpickled?tpickle-protocols(jm jn >https://docs.python.org/3/library/pickle.html#pickle-protocolsData stream formattpickle-restrict(jm jn =https://docs.python.org/3/library/pickle.html#pickle-restrictRestricting Globalst pickle-state(jm jn :https://docs.python.org/3/library/pickle.html#pickle-stateHandling Stateful Objectstpickling(jm jn 8https://docs.python.org/3/library/zoneinfo.html#picklingPickle serializationt poll-objects(jm jn :https://docs.python.org/3/library/select.html#poll-objectsPolling Objectst pop3-example(jm jn :https://docs.python.org/3/library/poplib.html#pop3-example POP3 Examplet pop3-objects(jm jn :https://docs.python.org/3/library/poplib.html#pop3-objects POP3 Objectstporting(jm jn 3https://docs.python.org/3/whatsnew/2.5.html#portingPorting to Python 2.5tporting-to-python-37(jm jn @https://docs.python.org/3/whatsnew/3.7.html#porting-to-python-37Porting to Python 3.7tportingpythoncode(jm jn =https://docs.python.org/3/whatsnew/3.3.html#portingpythoncodePorting Python codetports(jm jn 1https://docs.python.org/3/whatsnew/2.5.html#portsPort-Specific Changestpositional-only_parameter(jm jn Ahttps://docs.python.org/3/glossary.html#positional-only-parameterjp tposix-contents(jm jn ;https://docs.python.org/3/library/posix.html#posix-contentsNotable Module Contentstposix-large-files(jm jn >https://docs.python.org/3/library/posix.html#posix-large-filesLarge File Supporttpost-init-processing(jm jn Ghttps://docs.python.org/3/library/dataclasses.html#post-init-processingPost-init processingtpostinstallation-script(jm jn Jhttps://docs.python.org/3/distutils/builtdist.html#postinstallation-scriptThe Postinstallation scripttpower(jm jn :https://docs.python.org/3/reference/expressions.html#powerThe power operatortpprint-example(jm jn https://docs.python.org/3/reference/expressions.html#primaries Primariestprivate-name-mangling(jm jn Jhttps://docs.python.org/3/reference/expressions.html#private-name-manglingjp tprocesscontrol(jm jn 7https://docs.python.org/3/c-api/sys.html#processcontrolProcess Controltprocesspoolexecutor-example(jm jn Uhttps://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor-exampleProcessPoolExecutor Exampletprofile(jm jn 6https://docs.python.org/3/library/profile.html#profileThe Python Profilerstprofile-calibration(jm jn Bhttps://docs.python.org/3/library/profile.html#profile-calibration Calibrationtprofile-instant(jm jn >https://docs.python.org/3/library/profile.html#profile-instantInstant User’s Manualtprofile-limitations(jm jn Bhttps://docs.python.org/3/library/profile.html#profile-limitations Limitationst profile-stats(jm jn https://docs.python.org/3/howto/pyporting.html#pyporting-howto!Porting Python 2 Code to Python 3tpython(jm jn 4https://docs.python.org/3/library/python.html#pythonPython Runtime Servicestpython-interface(jm jn >https://docs.python.org/3/library/timeit.html#python-interfacePython Interfacet python-shell(jm jn 8https://docs.python.org/3/library/idle.html#python-shelljp t python-terms(jm jn Bhttps://docs.python.org/3/distutils/introduction.html#python-termsGeneral Python terminologytpyzipfile-objects(jm jn @https://docs.python.org/3/library/zipfile.html#pyzipfile-objectsPyZipFile Objectstqt-gui(jm jn https://docs.python.org/3/library/re.html#re-special-sequencesjp t re-syntax(jm jn 3https://docs.python.org/3/library/re.html#re-syntaxRegular Expression Syntaxtreadline-example(jm jn @https://docs.python.org/3/library/readline.html#readline-exampleExampletreal-valued-distributions(jm jn Ghttps://docs.python.org/3/library/random.html#real-valued-distributionsReal-valued distributionstrecord-objects(jm jn https://docs.python.org/3/library/pickle.html#reducer-override8Custom Reduction for Types, Functions, and Other Objectst reentrant-cms(jm jn ?https://docs.python.org/3/library/contextlib.html#reentrant-cmsReentrant context managerst refcounts(jm jn https://docs.python.org/3/reference/index.html#reference-indexThe Python Language Referencet reflection(jm jn :https://docs.python.org/3/c-api/reflection.html#reflection Reflectiont regex-howto(jm jn 6https://docs.python.org/3/howto/regex.html#regex-howtoRegular Expression HOWTOtregrtest(jm jn 4https://docs.python.org/3/library/test.html#regrtest.Running tests using the command-line interfacetrelativeimports(jm jn ?https://docs.python.org/3/reference/import.html#relativeimportsPackage Relative Importst relevant-peps(jm jn ;https://docs.python.org/3/library/typing.html#relevant-peps Relevant PEPstremoved-in-python-39(jm jn @https://docs.python.org/3/whatsnew/3.9.html#removed-in-python-39Removedtreporting-bugs(jm jn 2https://docs.python.org/3/bugs.html#reporting-bugsDealing with Bugst repr-objects(jm jn ;https://docs.python.org/3/library/reprlib.html#repr-objects Repr Objectstrequest-objects(jm jn Ehttps://docs.python.org/3/library/urllib.request.html#request-objectsRequest Objectstrequired(jm jn 8https://docs.python.org/3/library/argparse.html#requiredjp t requirements(jm jn Fhttps://docs.python.org/3/library/importlib.metadata.html#requirementsDistribution requirementst resolve_names(jm jn Ehttps://docs.python.org/3/reference/executionmodel.html#resolve-namesResolution of namest restrict_exec(jm jn Ehttps://docs.python.org/3/reference/executionmodel.html#restrict-exec!Builtins and restricted executiontreturn(jm jn https://docs.python.org/3/library/contextlib.html#reusable-cmsReusable context managerst richcmpfuncs(jm jn ?https://docs.python.org/3/reference/datamodel.html#richcmpfuncsjp trlcompleter-config(jm jn >https://docs.python.org/3/library/site.html#rlcompleter-configReadline configurationt rlock-objects(jm jn >https://docs.python.org/3/library/threading.html#rlock-objects RLock Objectstrotating-file-handler(jm jn Mhttps://docs.python.org/3/library/logging.handlers.html#rotating-file-handlerRotatingFileHandlert run-custom(jm jn 6https://docs.python.org/3/library/idle.html#run-customjp t run-module(jm jn 6https://docs.python.org/3/library/idle.html#run-modulejp tsax-error-handler(jm jn Hhttps://docs.python.org/3/library/xml.sax.handler.html#sax-error-handlerErrorHandler Objectstsax-exception-objects(jm jn Dhttps://docs.python.org/3/library/xml.sax.html#sax-exception-objectsSAXException Objectstscheduler-objects(jm jn >https://docs.python.org/3/library/sched.html#scheduler-objectsScheduler Objectstscreenspecific(jm jn https://docs.python.org/3/whatsnew/2.3.html#section-generatorsPEP 255: Simple Generatorstsection-pep301(jm jn :https://docs.python.org/3/whatsnew/2.3.html#section-pep3011PEP 301: Package Index and Metadata for Distutilstsection-pep302(jm jn :https://docs.python.org/3/whatsnew/2.3.html#section-pep302PEP 302: New Import Hookstsection-pep305(jm jn :https://docs.python.org/3/whatsnew/2.3.html#section-pep305PEP 305: Comma-separated Filestsection-pep307(jm jn :https://docs.python.org/3/whatsnew/2.3.html#section-pep307PEP 307: Pickle Enhancementstsection-pymalloc(jm jn https://docs.python.org/3/library/sqlite3.html#sqlite3-conformHow to write adaptable objectst"sqlite3-connection-context-manager(jm jn Qhttps://docs.python.org/3/library/sqlite3.html#sqlite3-connection-context-manager)How to use the connection context managertsqlite3-connection-objects(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3-connection-objectsConnection objectstsqlite3-connection-shortcuts(jm jn Khttps://docs.python.org/3/library/sqlite3.html#sqlite3-connection-shortcuts&How to use connection shortcut methodst sqlite3-controlling-transactions(jm jn Ohttps://docs.python.org/3/library/sqlite3.html#sqlite3-controlling-transactionsTransaction controltsqlite3-converters(jm jn Ahttps://docs.python.org/3/library/sqlite3.html#sqlite3-converters3How to convert SQLite values to custom Python typestsqlite3-cursor-objects(jm jn Ehttps://docs.python.org/3/library/sqlite3.html#sqlite3-cursor-objectsCursor objectstsqlite3-default-converters(jm jn Ihttps://docs.python.org/3/library/sqlite3.html#sqlite3-default-convertersDefault adapters and converterstsqlite3-exceptions(jm jn Ahttps://docs.python.org/3/library/sqlite3.html#sqlite3-exceptions Exceptionstsqlite3-explanation(jm jn Bhttps://docs.python.org/3/library/sqlite3.html#sqlite3-explanation Explanationtsqlite3-howto-row-factory(jm jn Hhttps://docs.python.org/3/library/sqlite3.html#sqlite3-howto-row-factory#How to create and use row factoriestsqlite3-howtos(jm jn =https://docs.python.org/3/library/sqlite3.html#sqlite3-howtos How-to guidest sqlite3-intro(jm jn https://docs.python.org/3/library/stdtypes.html#stdcomparisons Comparisonststream-handler(jm jn Fhttps://docs.python.org/3/library/logging.handlers.html#stream-handler StreamHandlertstream-reader-objects(jm jn Chttps://docs.python.org/3/library/codecs.html#stream-reader-objectsStreamReader Objectststream-reader-writer(jm jn Bhttps://docs.python.org/3/library/codecs.html#stream-reader-writerStreamReaderWriter Objectststream-recoder-objects(jm jn Dhttps://docs.python.org/3/library/codecs.html#stream-recoder-objectsStreamRecoder Objectststream-writer-objects(jm jn Chttps://docs.python.org/3/library/codecs.html#stream-writer-objectsStreamWriter Objectststrftime-strptime-behavior(jm jn Jhttps://docs.python.org/3/library/datetime.html#strftime-strptime-behavior"strftime() and strptime() Behaviortstring-concatenation(jm jn Nhttps://docs.python.org/3/reference/lexical_analysis.html#string-concatenationString literal concatenationtstring-conversion(jm jn Ahttps://docs.python.org/3/c-api/conversion.html#string-conversion String conversion and formattingtstring-formatting(jm jn ?https://docs.python.org/3/library/string.html#string-formattingCustom String Formattingtstring-methods(jm jn >https://docs.python.org/3/library/stdtypes.html#string-methodsString Methodststrings(jm jn Ahttps://docs.python.org/3/reference/lexical_analysis.html#stringsString and Bytes literalststringservices(jm jn :https://docs.python.org/3/library/text.html#stringservicesText Processing Serviceststruct-alignment(jm jn >https://docs.python.org/3/library/struct.html#struct-alignmentByte Order, Size, and Alignmenttstruct-examples(jm jn =https://docs.python.org/3/library/struct.html#struct-examplesExampleststruct-format-strings(jm jn Chttps://docs.python.org/3/library/struct.html#struct-format-stringsFormat Stringststruct-native-formats(jm jn Chttps://docs.python.org/3/library/struct.html#struct-native-formatsNative Formatststruct-objects(jm jn https://docs.python.org/3/library/tarfile.html#tarfile-objectsTarFile Objectsttarinfo-objects(jm jn >https://docs.python.org/3/library/tarfile.html#tarinfo-objectsTarInfo Objectst taskgroups(jm jn >https://docs.python.org/3/library/asyncio-task.html#taskgroups Task Groupsttelnet-example(jm jn ?https://docs.python.org/3/library/telnetlib.html#telnet-exampleTelnet Examplettelnet-objects(jm jn ?https://docs.python.org/3/library/telnetlib.html#telnet-objectsTelnet Objectsttempfile-examples(jm jn Ahttps://docs.python.org/3/library/tempfile.html#tempfile-examplesExamplesttempfile-mktemp-deprecated(jm jn Jhttps://docs.python.org/3/library/tempfile.html#tempfile-mktemp-deprecated"Deprecated functions and variablesttemplate-objects(jm jn =https://docs.python.org/3/library/pipes.html#template-objectsTemplate Objectsttemplate-strings(jm jn >https://docs.python.org/3/library/string.html#template-stringsTemplate stringst terminal-size(jm jn 7https://docs.python.org/3/library/os.html#terminal-sizeQuerying the size of a terminalttermios-example(jm jn >https://docs.python.org/3/library/termios.html#termios-exampleExamplet test-prefix(jm jn @https://docs.python.org/3/library/unittest.mock.html#test-prefix TEST_PREFIXttestcase-objects(jm jn @https://docs.python.org/3/library/unittest.html#testcase-objects Test casesttestsuite-objects(jm jn Ahttps://docs.python.org/3/library/unittest.html#testsuite-objectsGrouping teststtext-transforms(jm jn =https://docs.python.org/3/library/codecs.html#text-transformsText Transformsttextseq(jm jn 7https://docs.python.org/3/library/stdtypes.html#textseqText Sequence Type — strt textservices(jm jn 8https://docs.python.org/3/library/text.html#textservicesText Processing Servicestthe-backslash-plague(jm jn ?https://docs.python.org/3/howto/regex.html#the-backslash-plagueThe Backslash Plaguetthinice(jm jn :https://docs.python.org/3/extending/extending.html#thiniceThin Icetthread-local-storage(jm jn >https://docs.python.org/3/c-api/init.html#thread-local-storageThread Local Storage Supporttthread-local-storage-api(jm jn Bhttps://docs.python.org/3/c-api/init.html#thread-local-storage-apiThread Local Storage (TLS) APItthread-objects(jm jn ?https://docs.python.org/3/library/threading.html#thread-objectsThread Objectstthread-specific-storage-api(jm jn Ehttps://docs.python.org/3/c-api/init.html#thread-specific-storage-api!Thread Specific Storage (TSS) APItthreadpoolexecutor-example(jm jn Thttps://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-exampleThreadPoolExecutor Exampletthreads(jm jn 1https://docs.python.org/3/c-api/init.html#threads,Thread State and the Global Interpreter Lockttime-clock-id-constants(jm jn Chttps://docs.python.org/3/library/time.html#time-clock-id-constantsClock ID Constantsttime-functions(jm jn :https://docs.python.org/3/library/time.html#time-functions Functionsttime-timezone-constants(jm jn Chttps://docs.python.org/3/library/time.html#time-timezone-constantsTimezone Constantsttimed-rotating-file-handler(jm jn Shttps://docs.python.org/3/library/logging.handlers.html#timed-rotating-file-handlerTimedRotatingFileHandlerttimeit-command-line-interface(jm jn Khttps://docs.python.org/3/library/timeit.html#timeit-command-line-interfaceCommand-Line Interfacettimeit-examples(jm jn =https://docs.python.org/3/library/timeit.html#timeit-examplesExamplest timer-objects(jm jn >https://docs.python.org/3/library/threading.html#timer-objects Timer Objectsttkinter(jm jn 1https://docs.python.org/3/library/tk.html#tkinter!Graphical User Interfaces with Tkttkinter-file-handlers(jm jn Dhttps://docs.python.org/3/library/tkinter.html#tkinter-file-handlers File Handlersttkinter-setting-options(jm jn Fhttps://docs.python.org/3/library/tkinter.html#tkinter-setting-optionsSetting Optionst tokenize-cli(jm jn https://docs.python.org/3/tutorial/appendix.html#tut-customizeThe Customization Modulesttut-data-compression(jm jn Chttps://docs.python.org/3/tutorial/stdlib.html#tut-data-compressionData Compressionttut-dates-and-times(jm jn Bhttps://docs.python.org/3/tutorial/stdlib.html#tut-dates-and-timesDates and Timesttut-decimal-fp(jm jn >https://docs.python.org/3/tutorial/stdlib2.html#tut-decimal-fp!Decimal Floating Point Arithmeticttut-defaultargs(jm jn Chttps://docs.python.org/3/tutorial/controlflow.html#tut-defaultargsDefault Argument Valuest tut-defining(jm jn @https://docs.python.org/3/tutorial/controlflow.html#tut-definingMore on Defining Functionsttut-del(jm jn >https://docs.python.org/3/tutorial/datastructures.html#tut-delThe del statementttut-dictionaries(jm jn Ghttps://docs.python.org/3/tutorial/datastructures.html#tut-dictionaries Dictionariesttut-dir(jm jn 7https://docs.python.org/3/tutorial/modules.html#tut-dirThe dir() Functionttut-docstrings(jm jn Bhttps://docs.python.org/3/tutorial/controlflow.html#tut-docstringsDocumentation Stringst tut-error(jm jn :https://docs.python.org/3/tutorial/appendix.html#tut-errorError Handlingt tut-errors(jm jn 9https://docs.python.org/3/tutorial/errors.html#tut-errorsErrors and Exceptionsttut-exception-chaining(jm jn Ehttps://docs.python.org/3/tutorial/errors.html#tut-exception-chainingException Chainingttut-exception-groups(jm jn Chttps://docs.python.org/3/tutorial/errors.html#tut-exception-groups2Raising and Handling Multiple Unrelated Exceptionsttut-exception-notes(jm jn Bhttps://docs.python.org/3/tutorial/errors.html#tut-exception-notesEnriching Exceptions with Notesttut-exceptions(jm jn =https://docs.python.org/3/tutorial/errors.html#tut-exceptions Exceptionst tut-f-strings(jm jn Ahttps://docs.python.org/3/tutorial/inputoutput.html#tut-f-stringsFormatted String Literalsttut-file-wildcards(jm jn Ahttps://docs.python.org/3/tutorial/stdlib.html#tut-file-wildcardsFile Wildcardsttut-filemethods(jm jn Chttps://docs.python.org/3/tutorial/inputoutput.html#tut-filemethodsMethods of File Objectst tut-files(jm jn =https://docs.python.org/3/tutorial/inputoutput.html#tut-filesReading and Writing Filesttut-firstclasses(jm jn @https://docs.python.org/3/tutorial/classes.html#tut-firstclassesA First Look at Classesttut-firststeps(jm jn Chttps://docs.python.org/3/tutorial/introduction.html#tut-firststepsFirst Steps Towards Programmingttut-for(jm jn ;https://docs.python.org/3/tutorial/controlflow.html#tut-forfor Statementsttut-formatting(jm jn Bhttps://docs.python.org/3/tutorial/inputoutput.html#tut-formattingFancier Output Formattingt tut-fp-error(jm jn Bhttps://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-errorRepresentation Errort tut-fp-issues(jm jn Chttps://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issues2Floating Point Arithmetic: Issues and Limitationst tut-functions(jm jn Ahttps://docs.python.org/3/tutorial/controlflow.html#tut-functionsDefining Functionsttut-generators(jm jn >https://docs.python.org/3/tutorial/classes.html#tut-generators Generatorst tut-genexps(jm jn ;https://docs.python.org/3/tutorial/classes.html#tut-genexpsGenerator Expressionst tut-handling(jm jn ;https://docs.python.org/3/tutorial/errors.html#tut-handlingHandling Exceptionsttut-if(jm jn :https://docs.python.org/3/tutorial/controlflow.html#tut-if if Statementst tut-informal(jm jn Ahttps://docs.python.org/3/tutorial/introduction.html#tut-informal"An Informal Introduction to Pythonttut-inheritance(jm jn ?https://docs.python.org/3/tutorial/classes.html#tut-inheritance Inheritancettut-instanceobjects(jm jn Chttps://docs.python.org/3/tutorial/classes.html#tut-instanceobjectsInstance Objectst tut-interac(jm jn https://docs.python.org/3/tutorial/interpreter.html#tut-interp#The Interpreter and Its Environmentt tut-intro(jm jn :https://docs.python.org/3/tutorial/appetite.html#tut-introWhetting Your Appetitet tut-invoking(jm jn @https://docs.python.org/3/tutorial/interpreter.html#tut-invokingInvoking the Interpreterttut-io(jm jn :https://docs.python.org/3/tutorial/inputoutput.html#tut-ioInput and Outputt tut-iterators(jm jn =https://docs.python.org/3/tutorial/classes.html#tut-iterators Iteratorsttut-json(jm jn https://docs.python.org/3/tutorial/controlflow.html#tut-lambdaLambda Expressionsttut-list-tools(jm jn >https://docs.python.org/3/tutorial/stdlib2.html#tut-list-toolsTools for Working with Listst tut-listcomps(jm jn Dhttps://docs.python.org/3/tutorial/datastructures.html#tut-listcompsList Comprehensionst tut-lists(jm jn >https://docs.python.org/3/tutorial/introduction.html#tut-listsListsttut-lists-as-queues(jm jn Jhttps://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-queuesUsing Lists as Queuesttut-lists-as-stacks(jm jn Jhttps://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-stacksUsing Lists as Stackst tut-logging(jm jn ;https://docs.python.org/3/tutorial/stdlib2.html#tut-loggingLoggingttut-loopidioms(jm jn Ehttps://docs.python.org/3/tutorial/datastructures.html#tut-loopidiomsLooping Techniquest tut-match(jm jn =https://docs.python.org/3/tutorial/controlflow.html#tut-matchmatch Statementsttut-mathematics(jm jn >https://docs.python.org/3/tutorial/stdlib.html#tut-mathematics Mathematicsttut-methodobjects(jm jn Ahttps://docs.python.org/3/tutorial/classes.html#tut-methodobjectsMethod Objectst tut-modules(jm jn ;https://docs.python.org/3/tutorial/modules.html#tut-modulesModulesttut-modulesasscripts(jm jn Dhttps://docs.python.org/3/tutorial/modules.html#tut-modulesasscriptsExecuting modules as scriptsttut-morecontrol(jm jn Chttps://docs.python.org/3/tutorial/controlflow.html#tut-morecontrolMore Control Flow Toolst tut-morelists(jm jn Dhttps://docs.python.org/3/tutorial/datastructures.html#tut-morelists More on Liststtut-moremodules(jm jn ?https://docs.python.org/3/tutorial/modules.html#tut-moremodulesMore on Modulesttut-multi-threading(jm jn Chttps://docs.python.org/3/tutorial/stdlib2.html#tut-multi-threadingMulti-threadingt tut-multiple(jm jn https://docs.python.org/3/tutorial/modules.html#tut-searchpathThe Module Search Pathttut-sets(jm jn ?https://docs.python.org/3/tutorial/datastructures.html#tut-setsSetsttut-source-encoding(jm jn Ghttps://docs.python.org/3/tutorial/interpreter.html#tut-source-encodingSource Code Encodingttut-standardmodules(jm jn Chttps://docs.python.org/3/tutorial/modules.html#tut-standardmodulesStandard Modulest tut-startup(jm jn https://docs.python.org/3/tutorial/stdlib2.html#tut-templating Templatingt tut-tuples(jm jn Ahttps://docs.python.org/3/tutorial/datastructures.html#tut-tuplesTuples and Sequencesttut-unpacking-arguments(jm jn Khttps://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-argumentsUnpacking Argument Liststtut-userexceptions(jm jn Ahttps://docs.python.org/3/tutorial/errors.html#tut-userexceptionsUser-defined Exceptionst tut-using(jm jn =https://docs.python.org/3/tutorial/interpreter.html#tut-usingUsing the Python Interpreterttut-venv(jm jn 5https://docs.python.org/3/tutorial/venv.html#tut-venv!Virtual Environments and Packagesttut-weak-references(jm jn Chttps://docs.python.org/3/tutorial/stdlib2.html#tut-weak-referencesWeak Referencest tut-whatnow(jm jn ;https://docs.python.org/3/tutorial/whatnow.html#tut-whatnow What Now?ttutorial-index(jm jn https://docs.python.org/3/c-api/typehints.html#typehintobjectsObjects for Type Hintingttypeiter(jm jn 8https://docs.python.org/3/library/stdtypes.html#typeiterIterator Typesttypememoryview(jm jn >https://docs.python.org/3/library/stdtypes.html#typememoryview Memory Viewst typeobjects(jm jn 5https://docs.python.org/3/c-api/type.html#typeobjects Type Objectsttypes(jm jn 8https://docs.python.org/3/reference/datamodel.html#typesThe standard type hierarchyttypes-genericalias(jm jn Bhttps://docs.python.org/3/library/stdtypes.html#types-genericaliasGeneric Alias Typet types-set(jm jn 9https://docs.python.org/3/library/stdtypes.html#types-setSet Types — set, frozensett types-union(jm jn ;https://docs.python.org/3/library/stdtypes.html#types-union Union Typettypesfunctions(jm jn >https://docs.python.org/3/library/stdtypes.html#typesfunctions Functionst typesinternal(jm jn =https://docs.python.org/3/library/stdtypes.html#typesinternalInternal Objectst typesmapping(jm jn https://docs.python.org/3/library/stdtypes.html#typesseq-rangeRangesttypesseq-tuple(jm jn >https://docs.python.org/3/library/stdtypes.html#typesseq-tupleTuplesttyping-constrained-typevar(jm jn Hhttps://docs.python.org/3/library/typing.html#typing-constrained-typevarjp tunary(jm jn :https://docs.python.org/3/reference/expressions.html#unary'Unary arithmetic and bitwise operationst unicode-howto(jm jn :https://docs.python.org/3/howto/unicode.html#unicode-howto Unicode HOWTOtunicodeexceptions(jm jn Ahttps://docs.python.org/3/c-api/exceptions.html#unicodeexceptionsUnicode Exception Objectstunicodemethodsandslots(jm jn Chttps://docs.python.org/3/c-api/unicode.html#unicodemethodsandslotsMethods and Slot Functionstunicodeobjects(jm jn ;https://docs.python.org/3/c-api/unicode.html#unicodeobjectsUnicode Objects and Codecstunittest-command-line-interface(jm jn Ohttps://docs.python.org/3/library/unittest.html#unittest-command-line-interfaceCommand-Line Interfacetunittest-contents(jm jn Ahttps://docs.python.org/3/library/unittest.html#unittest-contentsClasses and functionstunittest-minimal-example(jm jn Hhttps://docs.python.org/3/library/unittest.html#unittest-minimal-example Basic exampletunittest-section(jm jn https://docs.python.org/3/using/cmdline.html#using-on-warningsjp tusing-on-windows(jm jn =https://docs.python.org/3/using/windows.html#using-on-windowsUsing Python on Windowstusing-the-cgi-module(jm jn ?https://docs.python.org/3/library/cgi.html#using-the-cgi-moduleUsing the cgi moduletusing-the-tracker(jm jn 5https://docs.python.org/3/bugs.html#using-the-trackerUsing the Python issue trackertutc-formatting(jm jn Dhttps://docs.python.org/3/howto/logging-cookbook.html#utc-formatting2Formatting times using UTC (GMT) via configurationt utf8-mode(jm jn 3https://docs.python.org/3/library/os.html#utf8-modePython UTF-8 Modet utilities(jm jn 8https://docs.python.org/3/c-api/utilities.html#utilities Utilitiest uuid-example(jm jn 8https://docs.python.org/3/library/uuid.html#uuid-exampleExampletvalue-patterns(jm jn Fhttps://docs.python.org/3/reference/compound_stmts.html#value-patternsValue Patternst value-types(jm jn 9https://docs.python.org/3/library/winreg.html#value-types Value Typest vectorcall(jm jn 4https://docs.python.org/3/c-api/call.html#vectorcallThe Vectorcall Protocoltvenv-api(jm jn 4https://docs.python.org/3/library/venv.html#venv-apiAPItvenv-def(jm jn 4https://docs.python.org/3/library/venv.html#venv-defjp tvenv-explanation(jm jn https://docs.python.org/3/library/warnings.html#warning-filterThe Warnings Filtertwarning-functions(jm jn Ahttps://docs.python.org/3/library/warnings.html#warning-functionsAvailable Functionstwarning-ignored(jm jn ?https://docs.python.org/3/library/warnings.html#warning-ignored.Updating Code For New Versions of Dependenciestwarning-suppress(jm jn @https://docs.python.org/3/library/warnings.html#warning-suppress Temporarily Suppressing Warningstwarning-testing(jm jn ?https://docs.python.org/3/library/warnings.html#warning-testingTesting Warningstwasm-availability(jm jn >https://docs.python.org/3/library/intro.html#wasm-availabilityWebAssembly platformstwatched-file-handler(jm jn Lhttps://docs.python.org/3/library/logging.handlers.html#watched-file-handlerWatchedFileHandlertwave-read-objects(jm jn =https://docs.python.org/3/library/wave.html#wave-read-objectsWave_read Objectstwave-write-objects(jm jn >https://docs.python.org/3/library/wave.html#wave-write-objectsWave_write Objectstweakref-example(jm jn >https://docs.python.org/3/library/weakref.html#weakref-exampleExampletweakref-objects(jm jn >https://docs.python.org/3/library/weakref.html#weakref-objectsWeak Reference Objectstweakref-support(jm jn Ahttps://docs.python.org/3/extending/newtypes.html#weakref-supportWeak Reference Supporttweakrefobjects(jm jn ;https://docs.python.org/3/c-api/weakref.html#weakrefobjectsWeak Reference Objectstwhats-new-in-2.6(jm jn https://docs.python.org/3/whatsnew/3.4.html#whatsnew-ensurepip ensurepipt whatsnew-enum(jm jn 9https://docs.python.org/3/whatsnew/3.4.html#whatsnew-enumenumtwhatsnew-index(jm jn https://docs.python.org/3/whatsnew/3.4.html#whatsnew-marshal-3marshalt whatsnew-multiprocessing-no-fork(jm jn Lhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-multiprocessing-no-forkjp twhatsnew-ordereddict(jm jn @https://docs.python.org/3/whatsnew/3.5.html#whatsnew-ordereddictjp twhatsnew-pathlib(jm jn PEP 453: Explicit Bootstrapping of PIP in Python Installationstwhatsnew-pep-456(jm jn PEP 465 - A dedicated infix operator for matrix multiplicationtwhatsnew-pep-471(jm jn https://docs.python.org/3/whatsnew/3.4.html#whatsnew-selectors selectorstwhatsnew-singledispatch(jm jn Chttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-singledispatchjp twhatsnew-sslmemorybio(jm jn Ahttps://docs.python.org/3/whatsnew/3.5.html#whatsnew-sslmemorybioMemory BIO Supporttwhatsnew-statistics(jm jn ?https://docs.python.org/3/whatsnew/3.4.html#whatsnew-statistics statisticstwhatsnew-subprocess(jm jn ?https://docs.python.org/3/whatsnew/3.5.html#whatsnew-subprocess subprocesstwhatsnew-tls-11-12(jm jn >https://docs.python.org/3/whatsnew/3.4.html#whatsnew-tls-11-12jp twhatsnew-traceback(jm jn >https://docs.python.org/3/whatsnew/3.5.html#whatsnew-traceback tracebacktwhatsnew-tracemalloc(jm jn @https://docs.python.org/3/whatsnew/3.4.html#whatsnew-tracemalloc tracemalloctwhatsnew-zipapp(jm jn ;https://docs.python.org/3/whatsnew/3.5.html#whatsnew-zipappzipapptwhatsnew27-capsules(jm jn ?https://docs.python.org/3/whatsnew/2.7.html#whatsnew27-capsulesCapsulestwhatsnew27-python31(jm jn ?https://docs.python.org/3/whatsnew/2.7.html#whatsnew27-python31The Future for Python 2.xtwhatsnew310-deprecated(jm jn Chttps://docs.python.org/3/whatsnew/3.10.html#whatsnew310-deprecated Deprecatedtwhatsnew310-pep563(jm jn ?https://docs.python.org/3/whatsnew/3.10.html#whatsnew310-pep563Parenthesized context managerstwhatsnew310-pep597(jm jn ?https://docs.python.org/3/whatsnew/3.10.html#whatsnew310-pep5975Optional EncodingWarning and encoding="locale" optiontwhatsnew310-removed(jm jn @https://docs.python.org/3/whatsnew/3.10.html#whatsnew310-removedRemovedtwhatsnew311-added-opcodes(jm jn Fhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-added-opcodes New opcodestwhatsnew311-asyncio(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-asyncioasynciotwhatsnew311-build-changes(jm jn Fhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-build-changes Build Changestwhatsnew311-bytecode-changes(jm jn Ihttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-bytecode-changesCPython bytecode changestwhatsnew311-c-api(jm jn >https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api C API Changestwhatsnew311-c-api-deprecated(jm jn Ihttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-deprecated Deprecatedtwhatsnew311-c-api-new-features(jm jn Khttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-new-features New Featurest!whatsnew311-c-api-pending-removal(jm jn Nhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-pending-removalPending Removal in Python 3.12twhatsnew311-c-api-porting(jm jn Fhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-portingPorting to Python 3.11twhatsnew311-c-api-removed(jm jn Fhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-removedRemovedtwhatsnew311-changed-opcodes(jm jn Hhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-changed-opcodesChanged/removed opcodest#whatsnew311-changed-removed-opcodes(jm jn Phttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-changed-removed-opcodesChanged/removed opcodestwhatsnew311-contextlib(jm jn Chttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-contextlib contextlibtwhatsnew311-dataclasses(jm jn Dhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-dataclasses dataclassestwhatsnew311-datetime(jm jn Ahttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-datetimedatetimetwhatsnew311-deprecated(jm jn Chttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated Deprecatedtwhatsnew311-deprecated-builtins(jm jn Lhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-builtinsLanguage/Builtinstwhatsnew311-deprecated-language(jm jn Lhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-languageLanguage/Builtinstwhatsnew311-deprecated-modules(jm jn Khttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-modulesModulestwhatsnew311-deprecated-stdlib(jm jn Jhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-stdlibStandard Librarytwhatsnew311-enum(jm jn =https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-enumenumtwhatsnew311-faster-cpython(jm jn Ghttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpythonFaster CPythont whatsnew311-faster-cpython-about(jm jn Mhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpython-aboutAbouttwhatsnew311-faster-cpython-faq(jm jn Khttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpython-faqFAQtwhatsnew311-faster-cpython-misc (jm jn Lhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpython-miscMisctwhatsnew311-faster-imports(jm jn Ghttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-imports$Frozen imports / Static code objectstwhatsnew311-faster-runtime(jm jn Ghttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-runtimeFaster Runtimetwhatsnew311-faster-startup(jm jn Ghttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-startupFaster Startuptwhatsnew311-fcntl(jm jn >https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-fcntlfcntltwhatsnew311-features(jm jn Ahttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-features New Featurestwhatsnew311-fractions(jm jn Bhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-fractions fractionstwhatsnew311-functools(jm jn Bhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-functools functoolstwhatsnew311-hashlib(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-hashlibhashlibtwhatsnew311-idle(jm jn =https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-idleIDLE and idlelibtwhatsnew311-improved-modules(jm jn Ihttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-improved-modulesImproved Modulestwhatsnew311-inline-calls(jm jn Ehttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-inline-callsInlined Python function callstwhatsnew311-inspect(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-inspectinspecttwhatsnew311-lazy-python-frames(jm jn Khttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-lazy-python-framesCheaper, lazy Python framestwhatsnew311-locale(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-localelocaletwhatsnew311-logging(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-loggingloggingtwhatsnew311-math(jm jn =https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-mathmathtwhatsnew311-new-modules(jm jn Dhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-new-modules New Modulestwhatsnew311-operator(jm jn Ahttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-operatoroperatortwhatsnew311-optimizations(jm jn Fhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-optimizations Optimizationstwhatsnew311-os(jm jn ;https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-osost(whatsnew311-other-implementation-changes(jm jn Uhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-other-implementation-changes$Other CPython Implementation Changestwhatsnew311-other-lang-changes(jm jn Khttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-other-lang-changesOther Language Changestwhatsnew311-pathlib(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pathlibpathlibtwhatsnew311-pending-removal(jm jn Hhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pending-removalPending Removal in Python 3.12twhatsnew311-pep563-deferred(jm jn Hhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep563-deferredPEP 563 may not be the futuretwhatsnew311-pep594(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep594jp twhatsnew311-pep624(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep624jp twhatsnew311-pep646(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep646PEP 646: Variadic genericstwhatsnew311-pep654(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep654%PEP 654: Exception Groups and except*twhatsnew311-pep655(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep655GPEP 655: Marking individual TypedDict items as required or not-requiredtwhatsnew311-pep657(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep6573PEP 657: Fine-grained error locations in tracebackstwhatsnew311-pep659(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep659*PEP 659: Specializing Adaptive Interpretertwhatsnew311-pep670(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep670jp twhatsnew311-pep673(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep673PEP 673: Self typetwhatsnew311-pep675(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep675&PEP 675: Arbitrary literal string typetwhatsnew311-pep678(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep678.PEP 678: Exceptions can be enriched with notestwhatsnew311-pep681(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep681PEP 681: Data class transformstwhatsnew311-porting(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-portingPorting to Python 3.11t!whatsnew311-python-api-deprecated(jm jn Nhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-deprecated Deprecatedt&whatsnew311-python-api-pending-removal(jm jn Shttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-pending-removalPending Removal in Python 3.12twhatsnew311-python-api-porting(jm jn Khttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-portingPorting to Python 3.11twhatsnew311-python-api-removed(jm jn Khttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-removedRemovedtwhatsnew311-pythonsafepath(jm jn Ghttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pythonsafepathjp twhatsnew311-re(jm jn ;https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-reretwhatsnew311-removed(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-removedRemovedtwhatsnew311-removed-opcodes(jm jn Hhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-removed-opcodesChanged/removed opcodestwhatsnew311-replaced-opcodes(jm jn Ihttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-replaced-opcodesReplaced opcodestwhatsnew311-shutil(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-shutilshutiltwhatsnew311-socket(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-socketsockettwhatsnew311-sqlite3(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-sqlite3sqlite3twhatsnew311-string(jm jn ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-stringstringtwhatsnew311-summary(jm jn @https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-summarySummary – Release highlightstwhatsnew311-sys(jm jn https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-tracing$DTrace and SystemTap probing supporttwhatsnew36-typing(jm jn =https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-typingtypingtwhatsnew36-venv(jm jn ;https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-venvvenvtwhatsnew37-asyncio-deprecated(jm jn Ihttps://docs.python.org/3/whatsnew/3.7.html#whatsnew37-asyncio-deprecatedasynciotwhatsnew37-asyncio-perf(jm jn Chttps://docs.python.org/3/whatsnew/3.7.html#whatsnew37-asyncio-perfjp twhatsnew37-devmode(jm jn >https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-devmode Python Development Mode (-X dev)twhatsnew37-pep538(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep538!PEP 538: Legacy C Locale Coerciontwhatsnew37-pep539(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep539+PEP 539: New C API for Thread-Local Storagetwhatsnew37-pep540(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep540"PEP 540: Forced UTF-8 Runtime Modetwhatsnew37-pep545(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep545*PEP 545: Python Documentation Translationstwhatsnew37-pep552(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep552PEP 552: Hash-based .pyc Filestwhatsnew37-pep553(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep553PEP 553: Built-in breakpoint()twhatsnew37-pep557(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep557 dataclassestwhatsnew37-pep560(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep5609PEP 560: Core Support for typing module and Generic Typestwhatsnew37-pep562(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep5625PEP 562: Customization of Access to Module Attributestwhatsnew37-pep563(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep563,PEP 563: Postponed Evaluation of Annotationstwhatsnew37-pep564(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep5646PEP 564: New Time Functions With Nanosecond Resolutiontwhatsnew37-pep565(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep565,PEP 565: Show DeprecationWarning in __main__twhatsnew37-pep567(jm jn =https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep567 contextvarstwhatsnew37-perf(jm jn ;https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-perf Optimizationstwhatsnew37_asyncio(jm jn >https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-asyncioasynciotwhatsnew37_importlib_resources(jm jn Jhttps://docs.python.org/3/whatsnew/3.7.html#whatsnew37-importlib-resourcesimportlib.resourcestwhatsnew_email_contentmanager(jm jn Ihttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-email-contentmanagerjp twhere-to-patch(jm jn Chttps://docs.python.org/3/library/unittest.mock.html#where-to-patchWhere to patchtwhile(jm jn =https://docs.python.org/3/reference/compound_stmts.html#whileThe while statementt whitespace(jm jn Dhttps://docs.python.org/3/reference/lexical_analysis.html#whitespaceWhitespace between tokenst.why-can-t-i-use-an-assignment-in-an-expression(jm jn Xhttps://docs.python.org/3/faq/design.html#why-can-t-i-use-an-assignment-in-an-expression1Why can’t I use an assignment in an expression?twhy-self(jm jn 2https://docs.python.org/3/faq/design.html#why-selfGWhy must ‘self’ be used explicitly in method definitions and calls?twildcard-patterns(jm jn Ihttps://docs.python.org/3/reference/compound_stmts.html#wildcard-patternsWildcard Patternst win-cookbook(jm jn =https://docs.python.org/3/extending/windows.html#win-cookbookA Cookbook Approachtwin-dlls(jm jn 9https://docs.python.org/3/extending/windows.html#win-dllsUsing DLLs in Practicet win-utf8-mode(jm jn :https://docs.python.org/3/using/windows.html#win-utf8-mode UTF-8 modetwindows-embeddable(jm jn ?https://docs.python.org/3/using/windows.html#windows-embeddableThe embeddable packaget windows-faq(jm jn 6https://docs.python.org/3/faq/windows.html#windows-faqPython on Windows FAQt windows-full(jm jn 9https://docs.python.org/3/using/windows.html#windows-fullThe full installert windows-nuget(jm jn :https://docs.python.org/3/using/windows.html#windows-nugetThe nuget.org packagestwindows-path-mod(jm jn =https://docs.python.org/3/using/windows.html#windows-path-modFinding the Python executablet windows-store(jm jn :https://docs.python.org/3/using/windows.html#windows-storeThe Microsoft Store packagetwindows_finding_modules(jm jn Dhttps://docs.python.org/3/using/windows.html#windows-finding-modulesFinding modulestwith(jm jn https://docs.python.org/3/library/xml.html#xml-vulnerabilitiesXML vulnerabilitiestxmlparser-objects(jm jn @https://docs.python.org/3/library/pyexpat.html#xmlparser-objectsXMLParser Objectstxmlreader-objects(jm jn Ghttps://docs.python.org/3/library/xml.sax.reader.html#xmlreader-objectsXMLReader Objectstxmlrpc-client-example(jm jn Jhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc-client-exampleExample of Client Usagetyield(jm jn ;https://docs.python.org/3/reference/simple_stmts.html#yieldThe yield statementt yieldexpr(jm jn >https://docs.python.org/3/reference/expressions.html#yieldexprYield expressionstzeromq-handlers(jm jn Ehttps://docs.python.org/3/howto/logging-cookbook.html#zeromq-handlers+Subclassing QueueHandler - a ZeroMQ exampletzipapp-command-line-interface(jm jn Khttps://docs.python.org/3/library/zipapp.html#zipapp-command-line-interfaceCommand-Line Interfacetzipapp-examples(jm jn =https://docs.python.org/3/library/zipapp.html#zipapp-examplesExamplestzipapp-python-api(jm jn ?https://docs.python.org/3/library/zipapp.html#zipapp-python-api Python APIt!zipapp-specifying-the-interpreter(jm jn Ohttps://docs.python.org/3/library/zipapp.html#zipapp-specifying-the-interpreterSpecifying the Interpretertzipfile-commandline(jm jn Bhttps://docs.python.org/3/library/zipfile.html#zipfile-commandlineCommand-Line Interfacetzipfile-objects(jm jn >https://docs.python.org/3/library/zipfile.html#zipfile-objectsZipFile Objectstzipfile-resources-limitations(jm jn Lhttps://docs.python.org/3/library/zipfile.html#zipfile-resources-limitationsResources limitationstzipimport-examples(jm jn Chttps://docs.python.org/3/library/zipimport.html#zipimport-examplesExamplestzipimporter-objects(jm jn Dhttps://docs.python.org/3/library/zipimport.html#zipimporter-objectszipimporter Objectstzipinfo-objects(jm jn >https://docs.python.org/3/library/zipfile.html#zipinfo-objectsZipInfo Objectst!zoneinfo_data_compile_time_config(jm jn Qhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-compile-time-configCompile-time configurationtzoneinfo_data_configuration(jm jn Khttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-configurationConfiguring the data sourcestzoneinfo_data_environment_var(jm jn Mhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-environment-varEnvironment configurationtzoneinfo_data_runtime_config(jm jn Lhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-runtime-configRuntime configurationtu std:opcode}(ASYNC_GEN_WRAP(jm jn @https://docs.python.org/3/library/dis.html#opcode-ASYNC_GEN_WRAPjp tBEFORE_ASYNC_WITH(jm jn Chttps://docs.python.org/3/library/dis.html#opcode-BEFORE_ASYNC_WITHjp t BEFORE_WITH(jm jn =https://docs.python.org/3/library/dis.html#opcode-BEFORE_WITHjp t BINARY_OP(jm jn ;https://docs.python.org/3/library/dis.html#opcode-BINARY_OPjp t BINARY_SUBSCR(jm jn ?https://docs.python.org/3/library/dis.html#opcode-BINARY_SUBSCRjp tBUILD_CONST_KEY_MAP(jm jn Ehttps://docs.python.org/3/library/dis.html#opcode-BUILD_CONST_KEY_MAPjp t BUILD_LIST(jm jn https://docs.python.org/3/library/dis.html#opcode-BUILD_STRINGjp t BUILD_TUPLE(jm jn =https://docs.python.org/3/library/dis.html#opcode-BUILD_TUPLEjp tCACHE(jm jn 7https://docs.python.org/3/library/dis.html#opcode-CACHEjp tCALL(jm jn 6https://docs.python.org/3/library/dis.html#opcode-CALLjp tCALL_FUNCTION_EX(jm jn Bhttps://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_EXjp tCHECK_EG_MATCH(jm jn @https://docs.python.org/3/library/dis.html#opcode-CHECK_EG_MATCHjp tCHECK_EXC_MATCH(jm jn Ahttps://docs.python.org/3/library/dis.html#opcode-CHECK_EXC_MATCHjp t COMPARE_OP(jm jn https://docs.python.org/3/library/dis.html#opcode-DELETE_DEREFjp t DELETE_FAST(jm jn =https://docs.python.org/3/library/dis.html#opcode-DELETE_FASTjp t DELETE_GLOBAL(jm jn ?https://docs.python.org/3/library/dis.html#opcode-DELETE_GLOBALjp t DELETE_NAME(jm jn =https://docs.python.org/3/library/dis.html#opcode-DELETE_NAMEjp t DELETE_SUBSCR(jm jn ?https://docs.python.org/3/library/dis.html#opcode-DELETE_SUBSCRjp t DICT_MERGE(jm jn https://docs.python.org/3/library/dis.html#opcode-EXTENDED_ARGjp t FORMAT_VALUE(jm jn >https://docs.python.org/3/library/dis.html#opcode-FORMAT_VALUEjp tFOR_ITER(jm jn :https://docs.python.org/3/library/dis.html#opcode-FOR_ITERjp t GET_AITER(jm jn ;https://docs.python.org/3/library/dis.html#opcode-GET_AITERjp t GET_ANEXT(jm jn ;https://docs.python.org/3/library/dis.html#opcode-GET_ANEXTjp t GET_AWAITABLE(jm jn ?https://docs.python.org/3/library/dis.html#opcode-GET_AWAITABLEjp tGET_ITER(jm jn :https://docs.python.org/3/library/dis.html#opcode-GET_ITERjp tGET_LEN(jm jn 9https://docs.python.org/3/library/dis.html#opcode-GET_LENjp tGET_YIELD_FROM_ITER(jm jn Ehttps://docs.python.org/3/library/dis.html#opcode-GET_YIELD_FROM_ITERjp t HAVE_ARGUMENT(jm jn ?https://docs.python.org/3/library/dis.html#opcode-HAVE_ARGUMENTjp t IMPORT_FROM(jm jn =https://docs.python.org/3/library/dis.html#opcode-IMPORT_FROMjp t IMPORT_NAME(jm jn =https://docs.python.org/3/library/dis.html#opcode-IMPORT_NAMEjp t IMPORT_STAR(jm jn =https://docs.python.org/3/library/dis.html#opcode-IMPORT_STARjp tIS_OP(jm jn 7https://docs.python.org/3/library/dis.html#opcode-IS_OPjp t JUMP_BACKWARD(jm jn ?https://docs.python.org/3/library/dis.html#opcode-JUMP_BACKWARDjp tJUMP_BACKWARD_NO_INTERRUPT(jm jn Lhttps://docs.python.org/3/library/dis.html#opcode-JUMP_BACKWARD_NO_INTERRUPTjp t JUMP_FORWARD(jm jn >https://docs.python.org/3/library/dis.html#opcode-JUMP_FORWARDjp tJUMP_IF_FALSE_OR_POP(jm jn Fhttps://docs.python.org/3/library/dis.html#opcode-JUMP_IF_FALSE_OR_POPjp tJUMP_IF_TRUE_OR_POP(jm jn Ehttps://docs.python.org/3/library/dis.html#opcode-JUMP_IF_TRUE_OR_POPjp tKW_NAMES(jm jn :https://docs.python.org/3/library/dis.html#opcode-KW_NAMESjp t LIST_APPEND(jm jn =https://docs.python.org/3/library/dis.html#opcode-LIST_APPENDjp t LIST_EXTEND(jm jn =https://docs.python.org/3/library/dis.html#opcode-LIST_EXTENDjp t LIST_TO_TUPLE(jm jn ?https://docs.python.org/3/library/dis.html#opcode-LIST_TO_TUPLEjp tLOAD_ASSERTION_ERROR(jm jn Fhttps://docs.python.org/3/library/dis.html#opcode-LOAD_ASSERTION_ERRORjp t LOAD_ATTR(jm jn ;https://docs.python.org/3/library/dis.html#opcode-LOAD_ATTRjp tLOAD_BUILD_CLASS(jm jn Bhttps://docs.python.org/3/library/dis.html#opcode-LOAD_BUILD_CLASSjp tLOAD_CLASSDEREF(jm jn Ahttps://docs.python.org/3/library/dis.html#opcode-LOAD_CLASSDEREFjp t LOAD_CLOSURE(jm jn >https://docs.python.org/3/library/dis.html#opcode-LOAD_CLOSUREjp t LOAD_CONST(jm jn https://docs.python.org/3/library/dis.html#opcode-RETURN_VALUEjp tSEND(jm jn 6https://docs.python.org/3/library/dis.html#opcode-SENDjp tSETUP_ANNOTATIONS(jm jn Chttps://docs.python.org/3/library/dis.html#opcode-SETUP_ANNOTATIONSjp tSET_ADD(jm jn 9https://docs.python.org/3/library/dis.html#opcode-SET_ADDjp t SET_UPDATE(jm jn https://docs.python.org/3/library/dis.html#opcode-STORE_GLOBALjp t STORE_NAME(jm jn https://docs.python.org/3/library/dis.html#opcode-STORE_SUBSCRjp tSWAP(jm jn 6https://docs.python.org/3/library/dis.html#opcode-SWAPjp t UNARY_INVERT(jm jn >https://docs.python.org/3/library/dis.html#opcode-UNARY_INVERTjp tUNARY_NEGATIVE(jm jn @https://docs.python.org/3/library/dis.html#opcode-UNARY_NEGATIVEjp t UNARY_NOT(jm jn ;https://docs.python.org/3/library/dis.html#opcode-UNARY_NOTjp tUNARY_POSITIVE(jm jn @https://docs.python.org/3/library/dis.html#opcode-UNARY_POSITIVEjp t UNPACK_EX(jm jn ;https://docs.python.org/3/library/dis.html#opcode-UNPACK_EXjp tUNPACK_SEQUENCE(jm jn Ahttps://docs.python.org/3/library/dis.html#opcode-UNPACK_SEQUENCEjp tWITH_EXCEPT_START(jm jn Chttps://docs.python.org/3/library/dis.html#opcode-WITH_EXCEPT_STARTjp t YIELD_VALUE(jm jn =https://docs.python.org/3/library/dis.html#opcode-YIELD_VALUEjp tu std:envvar}( BASECFLAGS(jm jn @https://docs.python.org/3/using/configure.html#envvar-BASECFLAGSjp t BASECPPFLAGS(jm jn Bhttps://docs.python.org/3/using/configure.html#envvar-BASECPPFLAGSjp t BLDSHARED(jm jn ?https://docs.python.org/3/using/configure.html#envvar-BLDSHAREDjp tCC(jm jn 8https://docs.python.org/3/using/configure.html#envvar-CCjp tCCSHARED(jm jn >https://docs.python.org/3/using/configure.html#envvar-CCSHAREDjp tCFLAGS(jm jn https://docs.python.org/3/using/configure.html#envvar-CPPFLAGSjp tCXX(jm jn 9https://docs.python.org/3/using/configure.html#envvar-CXXjp t EXTRA_CFLAGS(jm jn Bhttps://docs.python.org/3/using/configure.html#envvar-EXTRA_CFLAGSjp tLDFLAGS(jm jn =https://docs.python.org/3/using/configure.html#envvar-LDFLAGSjp tLDFLAGS_NODIST(jm jn Dhttps://docs.python.org/3/using/configure.html#envvar-LDFLAGS_NODISTjp tLDSHARED(jm jn >https://docs.python.org/3/using/configure.html#envvar-LDSHAREDjp tLIBS(jm jn :https://docs.python.org/3/using/configure.html#envvar-LIBSjp tLINKCC(jm jn https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOMEjp t PYTHONINSPECT(jm jn Ahttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONINSPECTjp tPYTHONINTMAXSTRDIGITS(jm jn Ihttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONINTMAXSTRDIGITSjp tPYTHONIOENCODING(jm jn Dhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONIOENCODINGjp tPYTHONLEGACYWINDOWSFSENCODING(jm jn Qhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONLEGACYWINDOWSFSENCODINGjp tPYTHONLEGACYWINDOWSSTDIO(jm jn Lhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONLEGACYWINDOWSSTDIOjp t PYTHONMALLOC(jm jn @https://docs.python.org/3/using/cmdline.html#envvar-PYTHONMALLOCjp tPYTHONMALLOCSTATS(jm jn Ehttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONMALLOCSTATSjp tPYTHONNODEBUGRANGES(jm jn Ghttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONNODEBUGRANGESjp tPYTHONNOUSERSITE(jm jn Dhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONNOUSERSITEjp tPYTHONOPTIMIZE(jm jn Bhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONOPTIMIZEjp t PYTHONPATH(jm jn >https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATHjp tPYTHONPLATLIBDIR(jm jn Dhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONPLATLIBDIRjp tPYTHONPROFILEIMPORTTIME(jm jn Khttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONPROFILEIMPORTTIMEjp tPYTHONPYCACHEPREFIX(jm jn Ghttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONPYCACHEPREFIXjp tPYTHONSAFEPATH(jm jn Bhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONSAFEPATHjp t PYTHONSTARTUP(jm jn Ahttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONSTARTUPjp tPYTHONTHREADDEBUG(jm jn Ehttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONTHREADDEBUGjp tPYTHONTRACEMALLOC(jm jn Ehttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONTRACEMALLOCjp t PYTHONTZPATH(jm jn Chttps://docs.python.org/3/library/zoneinfo.html#envvar-PYTHONTZPATHjp tPYTHONUNBUFFERED(jm jn Dhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFEREDjp tPYTHONUSERBASE(jm jn Bhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONUSERBASEjp t PYTHONUTF8(jm jn >https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUTF8jp t PYTHONVERBOSE(jm jn Ahttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONVERBOSEjp tPYTHONWARNDEFAULTENCODING(jm jn Mhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNDEFAULTENCODINGjp tPYTHONWARNINGS(jm jn Bhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGSjp tPY_BUILTIN_MODULE_CFLAGS(jm jn Nhttps://docs.python.org/3/using/configure.html#envvar-PY_BUILTIN_MODULE_CFLAGSjp t PY_CFLAGS(jm jn ?https://docs.python.org/3/using/configure.html#envvar-PY_CFLAGSjp tPY_CFLAGS_NODIST(jm jn Fhttps://docs.python.org/3/using/configure.html#envvar-PY_CFLAGS_NODISTjp tPY_CORE_CFLAGS(jm jn Dhttps://docs.python.org/3/using/configure.html#envvar-PY_CORE_CFLAGSjp tPY_CORE_LDFLAGS(jm jn Ehttps://docs.python.org/3/using/configure.html#envvar-PY_CORE_LDFLAGSjp t PY_CPPFLAGS(jm jn Ahttps://docs.python.org/3/using/configure.html#envvar-PY_CPPFLAGSjp t PY_LDFLAGS(jm jn @https://docs.python.org/3/using/configure.html#envvar-PY_LDFLAGSjp tPY_LDFLAGS_NODIST(jm jn Ghttps://docs.python.org/3/using/configure.html#envvar-PY_LDFLAGS_NODISTjp tPY_STDMODULE_CFLAGS(jm jn Ihttps://docs.python.org/3/using/configure.html#envvar-PY_STDMODULE_CFLAGSjp tustd:doc}(about(jm jn $https://docs.python.org/3/about.htmlAbout these documentstbugs(jm jn #https://docs.python.org/3/bugs.htmlDealing with Bugstc-api/abstract(jm jn -https://docs.python.org/3/c-api/abstract.htmlAbstract Objects Layertc-api/allocation(jm jn /https://docs.python.org/3/c-api/allocation.htmlAllocating Objects on the Heaptc-api/apiabiversion(jm jn 2https://docs.python.org/3/c-api/apiabiversion.htmlAPI and ABI Versioningt c-api/arg(jm jn (https://docs.python.org/3/c-api/arg.html%Parsing arguments and building valuest c-api/bool(jm jn )https://docs.python.org/3/c-api/bool.htmlBoolean Objectst c-api/buffer(jm jn +https://docs.python.org/3/c-api/buffer.htmlBuffer Protocoltc-api/bytearray(jm jn .https://docs.python.org/3/c-api/bytearray.htmlByte Array Objectst c-api/bytes(jm jn *https://docs.python.org/3/c-api/bytes.html Bytes Objectst c-api/call(jm jn )https://docs.python.org/3/c-api/call.html Call Protocolt c-api/capsule(jm jn ,https://docs.python.org/3/c-api/capsule.htmlCapsulest c-api/cell(jm jn )https://docs.python.org/3/c-api/cell.html Cell Objectst c-api/code(jm jn )https://docs.python.org/3/c-api/code.html Code Objectst c-api/codec(jm jn *https://docs.python.org/3/c-api/codec.html$Codec registry and support functionst c-api/complex(jm jn ,https://docs.python.org/3/c-api/complex.htmlComplex Number Objectstc-api/concrete(jm jn -https://docs.python.org/3/c-api/concrete.htmlConcrete Objects Layertc-api/contextvars(jm jn 0https://docs.python.org/3/c-api/contextvars.htmlContext Variables Objectstc-api/conversion(jm jn /https://docs.python.org/3/c-api/conversion.html String conversion and formattingt c-api/coro(jm jn )https://docs.python.org/3/c-api/coro.htmlCoroutine Objectstc-api/datetime(jm jn -https://docs.python.org/3/c-api/datetime.htmlDateTime Objectstc-api/descriptor(jm jn /https://docs.python.org/3/c-api/descriptor.htmlDescriptor Objectst c-api/dict(jm jn )https://docs.python.org/3/c-api/dict.htmlDictionary Objectstc-api/exceptions(jm jn /https://docs.python.org/3/c-api/exceptions.htmlException Handlingt c-api/file(jm jn )https://docs.python.org/3/c-api/file.html File Objectst c-api/float(jm jn *https://docs.python.org/3/c-api/float.htmlFloating Point Objectst c-api/frame(jm jn *https://docs.python.org/3/c-api/frame.html Frame Objectstc-api/function(jm jn -https://docs.python.org/3/c-api/function.htmlFunction Objectstc-api/gcsupport(jm jn .https://docs.python.org/3/c-api/gcsupport.html$Supporting Cyclic Garbage Collectiont c-api/gen(jm jn (https://docs.python.org/3/c-api/gen.htmlGenerator Objectst c-api/import(jm jn +https://docs.python.org/3/c-api/import.htmlImporting Modulest c-api/index(jm jn *https://docs.python.org/3/c-api/index.htmlPython/C API Reference Manualt c-api/init(jm jn )https://docs.python.org/3/c-api/init.html)Initialization, Finalization, and Threadstc-api/init_config(jm jn 0https://docs.python.org/3/c-api/init_config.html#Python Initialization Configurationt c-api/intro(jm jn *https://docs.python.org/3/c-api/intro.html Introductiont c-api/iter(jm jn )https://docs.python.org/3/c-api/iter.htmlIterator Protocoltc-api/iterator(jm jn -https://docs.python.org/3/c-api/iterator.htmlIterator Objectst c-api/list(jm jn )https://docs.python.org/3/c-api/list.html List Objectst c-api/long(jm jn )https://docs.python.org/3/c-api/long.htmlInteger Objectst c-api/mapping(jm jn ,https://docs.python.org/3/c-api/mapping.htmlMapping Protocolt c-api/marshal(jm jn ,https://docs.python.org/3/c-api/marshal.htmlData marshalling supportt c-api/memory(jm jn +https://docs.python.org/3/c-api/memory.htmlMemory Managementtc-api/memoryview(jm jn /https://docs.python.org/3/c-api/memoryview.htmlMemoryView objectst c-api/method(jm jn +https://docs.python.org/3/c-api/method.htmlInstance Method Objectst c-api/module(jm jn +https://docs.python.org/3/c-api/module.htmlModule Objectst c-api/none(jm jn )https://docs.python.org/3/c-api/none.htmlThe None Objectt c-api/number(jm jn +https://docs.python.org/3/c-api/number.htmlNumber Protocoltc-api/objbuffer(jm jn .https://docs.python.org/3/c-api/objbuffer.htmlOld Buffer Protocolt c-api/object(jm jn +https://docs.python.org/3/c-api/object.htmlObject Protocolt c-api/objimpl(jm jn ,https://docs.python.org/3/c-api/objimpl.htmlObject Implementation Supporttc-api/refcounting(jm jn 0https://docs.python.org/3/c-api/refcounting.htmlReference Countingtc-api/reflection(jm jn /https://docs.python.org/3/c-api/reflection.html Reflectiontc-api/sequence(jm jn -https://docs.python.org/3/c-api/sequence.htmlSequence Protocolt c-api/set(jm jn (https://docs.python.org/3/c-api/set.html Set Objectst c-api/slice(jm jn *https://docs.python.org/3/c-api/slice.html Slice Objectst c-api/stable(jm jn +https://docs.python.org/3/c-api/stable.htmlC API Stabilitytc-api/structures(jm jn /https://docs.python.org/3/c-api/structures.htmlCommon Object Structurest c-api/sys(jm jn (https://docs.python.org/3/c-api/sys.htmlOperating System Utilitiest c-api/tuple(jm jn *https://docs.python.org/3/c-api/tuple.html Tuple Objectst c-api/type(jm jn )https://docs.python.org/3/c-api/type.html Type Objectstc-api/typehints(jm jn .https://docs.python.org/3/c-api/typehints.htmlObjects for Type Hintingt c-api/typeobj(jm jn ,https://docs.python.org/3/c-api/typeobj.html Type Objectst c-api/unicode(jm jn ,https://docs.python.org/3/c-api/unicode.htmlUnicode Objects and Codecstc-api/utilities(jm jn .https://docs.python.org/3/c-api/utilities.html Utilitiestc-api/veryhigh(jm jn -https://docs.python.org/3/c-api/veryhigh.htmlThe Very High Level Layert c-api/weakref(jm jn ,https://docs.python.org/3/c-api/weakref.htmlWeak Reference Objectstcontents(jm jn 'https://docs.python.org/3/contents.htmlPython Documentation contentst copyright(jm jn (https://docs.python.org/3/copyright.html Copyrighttdistributing/index(jm jn 1https://docs.python.org/3/distributing/index.htmlDistributing Python Modulest distutils/_setuptools_disclaimer(jm jn ?https://docs.python.org/3/distutils/_setuptools_disclaimer.html tdistutils/apiref(jm jn /https://docs.python.org/3/distutils/apiref.html API Referencetdistutils/builtdist(jm jn 2https://docs.python.org/3/distutils/builtdist.htmlCreating Built Distributionstdistutils/commandref(jm jn 3https://docs.python.org/3/distutils/commandref.htmlCommand Referencetdistutils/configfile(jm jn 3https://docs.python.org/3/distutils/configfile.html$Writing the Setup Configuration Filetdistutils/examples(jm jn 1https://docs.python.org/3/distutils/examples.htmlDistutils Examplestdistutils/extending(jm jn 2https://docs.python.org/3/distutils/extending.htmlExtending Distutilstdistutils/index(jm jn .https://docs.python.org/3/distutils/index.html,Distributing Python Modules (Legacy version)tdistutils/introduction(jm jn 5https://docs.python.org/3/distutils/introduction.htmlAn Introduction to Distutilstdistutils/packageindex(jm jn 5https://docs.python.org/3/distutils/packageindex.htmlThe Python Package Index (PyPI)tdistutils/setupscript(jm jn 4https://docs.python.org/3/distutils/setupscript.htmlWriting the Setup Scripttdistutils/sourcedist(jm jn 3https://docs.python.org/3/distutils/sourcedist.htmlCreating a Source Distributiontdistutils/uploading(jm jn 2https://docs.python.org/3/distutils/uploading.html'Uploading Packages to the Package Indextextending/building(jm jn 1https://docs.python.org/3/extending/building.htmlBuilding C and C++ Extensionstextending/embedding(jm jn 2https://docs.python.org/3/extending/embedding.html'Embedding Python in Another Applicationtextending/extending(jm jn 2https://docs.python.org/3/extending/extending.htmlExtending Python with C or C++textending/index(jm jn .https://docs.python.org/3/extending/index.html.Extending and Embedding the Python Interpretertextending/newtypes(jm jn 1https://docs.python.org/3/extending/newtypes.html)Defining Extension Types: Assorted Topicstextending/newtypes_tutorial(jm jn :https://docs.python.org/3/extending/newtypes_tutorial.html"Defining Extension Types: Tutorialtextending/windows(jm jn 0https://docs.python.org/3/extending/windows.html(Building C and C++ Extensions on Windowst faq/design(jm jn )https://docs.python.org/3/faq/design.htmlDesign and History FAQt faq/extending(jm jn ,https://docs.python.org/3/faq/extending.htmlExtending/Embedding FAQt faq/general(jm jn *https://docs.python.org/3/faq/general.htmlGeneral Python FAQtfaq/gui(jm jn &https://docs.python.org/3/faq/gui.htmlGraphic User Interface FAQt faq/index(jm jn (https://docs.python.org/3/faq/index.html!Python Frequently Asked Questionst faq/installed(jm jn ,https://docs.python.org/3/faq/installed.html1“Why is Python Installed on my Computer?” FAQt faq/library(jm jn *https://docs.python.org/3/faq/library.htmlLibrary and Extension FAQtfaq/programming(jm jn .https://docs.python.org/3/faq/programming.htmlProgramming FAQt faq/windows(jm jn *https://docs.python.org/3/faq/windows.htmlPython on Windows FAQtglossary(jm jn 'https://docs.python.org/3/glossary.htmlGlossarythowto/annotations(jm jn 0https://docs.python.org/3/howto/annotations.htmlAnnotations Best Practicesthowto/argparse(jm jn -https://docs.python.org/3/howto/argparse.htmlArgparse Tutorialt howto/clinic(jm jn +https://docs.python.org/3/howto/clinic.htmlArgument Clinic How-Tothowto/cporting(jm jn -https://docs.python.org/3/howto/cporting.html%Porting Extension Modules to Python 3t howto/curses(jm jn +https://docs.python.org/3/howto/curses.htmlCurses Programming with Pythonthowto/descriptor(jm jn /https://docs.python.org/3/howto/descriptor.htmlDescriptor HowTo Guidet howto/enum(jm jn )https://docs.python.org/3/howto/enum.html Enum HOWTOthowto/functional(jm jn /https://docs.python.org/3/howto/functional.htmlFunctional Programming HOWTOt howto/index(jm jn *https://docs.python.org/3/howto/index.html Python HOWTOsthowto/instrumentation(jm jn 4https://docs.python.org/3/howto/instrumentation.html/Instrumenting CPython with DTrace and SystemTapthowto/ipaddress(jm jn .https://docs.python.org/3/howto/ipaddress.html'An introduction to the ipaddress modulethowto/isolating-extensions(jm jn 9https://docs.python.org/3/howto/isolating-extensions.htmlIsolating Extension Modulest howto/logging(jm jn ,https://docs.python.org/3/howto/logging.html Logging HOWTOthowto/logging-cookbook(jm jn 5https://docs.python.org/3/howto/logging-cookbook.htmlLogging Cookbookthowto/pyporting(jm jn .https://docs.python.org/3/howto/pyporting.html!Porting Python 2 Code to Python 3t howto/regex(jm jn *https://docs.python.org/3/howto/regex.htmlRegular Expression HOWTOt howto/sockets(jm jn ,https://docs.python.org/3/howto/sockets.htmlSocket Programming HOWTOt howto/sorting(jm jn ,https://docs.python.org/3/howto/sorting.htmlSorting HOW TOt howto/unicode(jm jn ,https://docs.python.org/3/howto/unicode.html Unicode HOWTOt howto/urllib2(jm jn ,https://docs.python.org/3/howto/urllib2.html7HOWTO Fetch Internet Resources Using The urllib Packaget install/index(jm jn ,https://docs.python.org/3/install/index.html*Installing Python Modules (Legacy version)tinstalling/index(jm jn /https://docs.python.org/3/installing/index.htmlInstalling Python Modulest library/2to3(jm jn +https://docs.python.org/3/library/2to3.html12to3 — Automated Python 2 to 3 code translationtlibrary/__future__(jm jn 1https://docs.python.org/3/library/__future__.html+__future__ — Future statement definitionstlibrary/__main__(jm jn /https://docs.python.org/3/library/__main__.html'__main__ — Top-level code environmenttlibrary/_thread(jm jn .https://docs.python.org/3/library/_thread.html#_thread — Low-level threading APIt library/abc(jm jn *https://docs.python.org/3/library/abc.htmlabc — Abstract Base Classest library/aifc(jm jn +https://docs.python.org/3/library/aifc.html+aifc — Read and write AIFF and AIFC filest library/allos(jm jn ,https://docs.python.org/3/library/allos.html!Generic Operating System Servicestlibrary/archiving(jm jn 0https://docs.python.org/3/library/archiving.htmlData Compression and Archivingtlibrary/argparse(jm jn /https://docs.python.org/3/library/argparse.htmlHargparse — Parser for command-line options, arguments and sub-commandst library/array(jm jn ,https://docs.python.org/3/library/array.html,array — Efficient arrays of numeric valuest library/ast(jm jn *https://docs.python.org/3/library/ast.htmlast — Abstract Syntax Treestlibrary/asynchat(jm jn /https://docs.python.org/3/library/asynchat.html9asynchat — Asynchronous socket command/response handlertlibrary/asyncio(jm jn .https://docs.python.org/3/library/asyncio.htmlasyncio — Asynchronous I/Otlibrary/asyncio-api-index(jm jn 8https://docs.python.org/3/library/asyncio-api-index.htmlHigh-level API Indextlibrary/asyncio-dev(jm jn 2https://docs.python.org/3/library/asyncio-dev.htmlDeveloping with asynciotlibrary/asyncio-eventloop(jm jn 8https://docs.python.org/3/library/asyncio-eventloop.html Event Looptlibrary/asyncio-exceptions(jm jn 9https://docs.python.org/3/library/asyncio-exceptions.html Exceptionstlibrary/asyncio-extending(jm jn 8https://docs.python.org/3/library/asyncio-extending.html Extendingtlibrary/asyncio-future(jm jn 5https://docs.python.org/3/library/asyncio-future.htmlFuturestlibrary/asyncio-llapi-index(jm jn :https://docs.python.org/3/library/asyncio-llapi-index.htmlLow-level API Indextlibrary/asyncio-platforms(jm jn 8https://docs.python.org/3/library/asyncio-platforms.htmlPlatform Supporttlibrary/asyncio-policy(jm jn 5https://docs.python.org/3/library/asyncio-policy.htmlPoliciestlibrary/asyncio-protocol(jm jn 7https://docs.python.org/3/library/asyncio-protocol.htmlTransports and Protocolstlibrary/asyncio-queue(jm jn 4https://docs.python.org/3/library/asyncio-queue.htmlQueuestlibrary/asyncio-runner(jm jn 5https://docs.python.org/3/library/asyncio-runner.htmlRunnerstlibrary/asyncio-stream(jm jn 5https://docs.python.org/3/library/asyncio-stream.htmlStreamstlibrary/asyncio-subprocess(jm jn 9https://docs.python.org/3/library/asyncio-subprocess.html Subprocessestlibrary/asyncio-sync(jm jn 3https://docs.python.org/3/library/asyncio-sync.htmlSynchronization Primitivestlibrary/asyncio-task(jm jn 3https://docs.python.org/3/library/asyncio-task.htmlCoroutines and Taskstlibrary/asyncore(jm jn /https://docs.python.org/3/library/asyncore.html(asyncore — Asynchronous socket handlertlibrary/atexit(jm jn -https://docs.python.org/3/library/atexit.htmlatexit — Exit handlerstlibrary/audioop(jm jn .https://docs.python.org/3/library/audioop.html%audioop — Manipulate raw audio datatlibrary/audit_events(jm jn 3https://docs.python.org/3/library/audit_events.htmlAudit events tabletlibrary/base64(jm jn -https://docs.python.org/3/library/base64.html8base64 — Base16, Base32, Base64, Base85 Data Encodingst library/bdb(jm jn *https://docs.python.org/3/library/bdb.htmlbdb — Debugger frameworktlibrary/binary(jm jn -https://docs.python.org/3/library/binary.htmlBinary Data Servicestlibrary/binascii(jm jn /https://docs.python.org/3/library/binascii.html-binascii — Convert between binary and ASCIItlibrary/bisect(jm jn -https://docs.python.org/3/library/bisect.html$bisect — Array bisection algorithmtlibrary/builtins(jm jn /https://docs.python.org/3/library/builtins.htmlbuiltins — Built-in objectst library/bz2(jm jn *https://docs.python.org/3/library/bz2.html%bz2 — Support for bzip2 compressiontlibrary/calendar(jm jn /https://docs.python.org/3/library/calendar.html/calendar — General calendar-related functionst library/cgi(jm jn *https://docs.python.org/3/library/cgi.html(cgi — Common Gateway Interface supportt library/cgitb(jm jn ,https://docs.python.org/3/library/cgitb.html+cgitb — Traceback manager for CGI scriptst library/chunk(jm jn ,https://docs.python.org/3/library/chunk.htmlchunk — Read IFF chunked datat library/cmath(jm jn ,https://docs.python.org/3/library/cmath.html4cmath — Mathematical functions for complex numberst library/cmd(jm jn *https://docs.python.org/3/library/cmd.html6cmd — Support for line-oriented command interpreterst library/code(jm jn +https://docs.python.org/3/library/code.html!code — Interpreter base classestlibrary/codecs(jm jn -https://docs.python.org/3/library/codecs.html*codecs — Codec registry and base classestlibrary/codeop(jm jn -https://docs.python.org/3/library/codeop.htmlcodeop — Compile Python codetlibrary/collections(jm jn 2https://docs.python.org/3/library/collections.html#collections — Container datatypestlibrary/collections.abc(jm jn 6https://docs.python.org/3/library/collections.abc.html8collections.abc — Abstract Base Classes for Containerstlibrary/colorsys(jm jn /https://docs.python.org/3/library/colorsys.html.colorsys — Conversions between color systemstlibrary/compileall(jm jn 1https://docs.python.org/3/library/compileall.html,compileall — Byte-compile Python librariestlibrary/concurrency(jm jn 2https://docs.python.org/3/library/concurrency.htmlConcurrent Executiontlibrary/concurrent(jm jn 1https://docs.python.org/3/library/concurrent.htmlThe concurrent packagetlibrary/concurrent.futures(jm jn 9https://docs.python.org/3/library/concurrent.futures.html/concurrent.futures — Launching parallel taskstlibrary/configparser(jm jn 3https://docs.python.org/3/library/configparser.html*configparser — Configuration file parsertlibrary/constants(jm jn 0https://docs.python.org/3/library/constants.htmlBuilt-in Constantstlibrary/contextlib(jm jn 1https://docs.python.org/3/library/contextlib.html4contextlib — Utilities for with-statement contextstlibrary/contextvars(jm jn 2https://docs.python.org/3/library/contextvars.html!contextvars — Context Variablest library/copy(jm jn +https://docs.python.org/3/library/copy.html)copy — Shallow and deep copy operationstlibrary/copyreg(jm jn .https://docs.python.org/3/library/copyreg.html-copyreg — Register pickle support functionst library/crypt(jm jn ,https://docs.python.org/3/library/crypt.html*crypt — Function to check Unix passwordstlibrary/crypto(jm jn -https://docs.python.org/3/library/crypto.htmlCryptographic Servicest library/csv(jm jn *https://docs.python.org/3/library/csv.html$csv — CSV File Reading and Writingtlibrary/ctypes(jm jn -https://docs.python.org/3/library/ctypes.html0ctypes — A foreign function library for Pythontlibrary/curses(jm jn -https://docs.python.org/3/library/curses.html8curses — Terminal handling for character-cell displaystlibrary/curses.ascii(jm jn 3https://docs.python.org/3/library/curses.ascii.html/curses.ascii — Utilities for ASCII characterstlibrary/curses.panel(jm jn 3https://docs.python.org/3/library/curses.panel.html3curses.panel — A panel stack extension for cursestlibrary/custominterp(jm jn 3https://docs.python.org/3/library/custominterp.htmlCustom Python Interpreterstlibrary/dataclasses(jm jn 2https://docs.python.org/3/library/dataclasses.htmldataclasses — Data Classestlibrary/datatypes(jm jn 0https://docs.python.org/3/library/datatypes.html Data Typestlibrary/datetime(jm jn /https://docs.python.org/3/library/datetime.html&datetime — Basic date and time typest library/dbm(jm jn *https://docs.python.org/3/library/dbm.html*dbm — Interfaces to Unix “databases”t library/debug(jm jn ,https://docs.python.org/3/library/debug.htmlDebugging and Profilingtlibrary/decimal(jm jn .https://docs.python.org/3/library/decimal.html=decimal — Decimal fixed point and floating point arithmetictlibrary/development(jm jn 2https://docs.python.org/3/library/development.htmlDevelopment Toolstlibrary/devmode(jm jn .https://docs.python.org/3/library/devmode.htmlPython Development Modetlibrary/dialog(jm jn -https://docs.python.org/3/library/dialog.htmlTkinter Dialogstlibrary/difflib(jm jn .https://docs.python.org/3/library/difflib.html(difflib — Helpers for computing deltast library/dis(jm jn *https://docs.python.org/3/library/dis.html(dis — Disassembler for Python bytecodetlibrary/distribution(jm jn 3https://docs.python.org/3/library/distribution.html#Software Packaging and Distributiontlibrary/distutils(jm jn 0https://docs.python.org/3/library/distutils.html4distutils — Building and installing Python modulestlibrary/doctest(jm jn .https://docs.python.org/3/library/doctest.html,doctest — Test interactive Python examplest library/email(jm jn ,https://docs.python.org/3/library/email.html,email — An email and MIME handling packagetlibrary/email.charset(jm jn 4https://docs.python.org/3/library/email.charset.html*email.charset: Representing character setstlibrary/email.compat32-message(jm jn =https://docs.python.org/3/library/email.compat32-message.htmlKemail.message.Message: Representing an email message using the compat32 APItlibrary/email.contentmanager(jm jn ;https://docs.python.org/3/library/email.contentmanager.html+email.contentmanager: Managing MIME Contenttlibrary/email.encoders(jm jn 5https://docs.python.org/3/library/email.encoders.htmlemail.encoders: Encoderstlibrary/email.errors(jm jn 3https://docs.python.org/3/library/email.errors.html*email.errors: Exception and Defect classestlibrary/email.examples(jm jn 5https://docs.python.org/3/library/email.examples.htmlemail: Examplestlibrary/email.generator(jm jn 6https://docs.python.org/3/library/email.generator.html*email.generator: Generating MIME documentstlibrary/email.header(jm jn 3https://docs.python.org/3/library/email.header.html'email.header: Internationalized headerstlibrary/email.headerregistry(jm jn ;https://docs.python.org/3/library/email.headerregistry.html+email.headerregistry: Custom Header Objectstlibrary/email.iterators(jm jn 6https://docs.python.org/3/library/email.iterators.htmlemail.iterators: Iteratorstlibrary/email.message(jm jn 4https://docs.python.org/3/library/email.message.html,email.message: Representing an email messagetlibrary/email.mime(jm jn 1https://docs.python.org/3/library/email.mime.html8email.mime: Creating email and MIME objects from scratchtlibrary/email.parser(jm jn 3https://docs.python.org/3/library/email.parser.html$email.parser: Parsing email messagestlibrary/email.policy(jm jn 3https://docs.python.org/3/library/email.policy.htmlemail.policy: Policy Objectstlibrary/email.utils(jm jn 2https://docs.python.org/3/library/email.utils.html$email.utils: Miscellaneous utilitiestlibrary/ensurepip(jm jn 0https://docs.python.org/3/library/ensurepip.html-ensurepip — Bootstrapping the pip installert library/enum(jm jn +https://docs.python.org/3/library/enum.html!enum — Support for enumerationst library/errno(jm jn ,https://docs.python.org/3/library/errno.html'errno — Standard errno system symbolstlibrary/exceptions(jm jn 1https://docs.python.org/3/library/exceptions.htmlBuilt-in Exceptionstlibrary/faulthandler(jm jn 3https://docs.python.org/3/library/faulthandler.html*faulthandler — Dump the Python tracebackt library/fcntl(jm jn ,https://docs.python.org/3/library/fcntl.html*fcntl — The fcntl and ioctl system callstlibrary/filecmp(jm jn .https://docs.python.org/3/library/filecmp.html*filecmp — File and Directory Comparisonstlibrary/fileformats(jm jn 2https://docs.python.org/3/library/fileformats.html File Formatstlibrary/fileinput(jm jn 0https://docs.python.org/3/library/fileinput.htmlhttps://docs.python.org/3/library/importlib.resources.abc.html?importlib.resources.abc – Abstract base classes for resourcest library/index(jm jn ,https://docs.python.org/3/library/index.htmlThe Python Standard Librarytlibrary/inspect(jm jn .https://docs.python.org/3/library/inspect.html inspect — Inspect live objectstlibrary/internet(jm jn /https://docs.python.org/3/library/internet.htmlInternet Protocols and Supportt library/intro(jm jn ,https://docs.python.org/3/library/intro.html Introductiont library/io(jm jn )https://docs.python.org/3/library/io.html*io — Core tools for working with streamstlibrary/ipaddress(jm jn 0https://docs.python.org/3/library/ipaddress.html,ipaddress — IPv4/IPv6 manipulation libraryt library/ipc(jm jn *https://docs.python.org/3/library/ipc.html)Networking and Interprocess Communicationtlibrary/itertools(jm jn 0https://docs.python.org/3/library/itertools.html@itertools — Functions creating iterators for efficient loopingt library/json(jm jn +https://docs.python.org/3/library/json.html!json — JSON encoder and decodertlibrary/keyword(jm jn .https://docs.python.org/3/library/keyword.html'keyword — Testing for Python keywordstlibrary/language(jm jn /https://docs.python.org/3/library/language.htmlPython Language Servicestlibrary/linecache(jm jn 0https://docs.python.org/3/library/linecache.html)linecache — Random access to text linestlibrary/locale(jm jn -https://docs.python.org/3/library/locale.html(locale — Internationalization servicestlibrary/logging(jm jn .https://docs.python.org/3/library/logging.html'logging — Logging facility for Pythontlibrary/logging.config(jm jn 5https://docs.python.org/3/library/logging.config.html(logging.config — Logging configurationtlibrary/logging.handlers(jm jn 7https://docs.python.org/3/library/logging.handlers.html%logging.handlers — Logging handlerst library/lzma(jm jn +https://docs.python.org/3/library/lzma.html-lzma — Compression using the LZMA algorithmtlibrary/mailbox(jm jn .https://docs.python.org/3/library/mailbox.html3mailbox — Manipulate mailboxes in various formatstlibrary/mailcap(jm jn .https://docs.python.org/3/library/mailcap.html!mailcap — Mailcap file handlingtlibrary/markup(jm jn -https://docs.python.org/3/library/markup.html"Structured Markup Processing Toolstlibrary/marshal(jm jn .https://docs.python.org/3/library/marshal.html0marshal — Internal Python object serializationt library/math(jm jn +https://docs.python.org/3/library/math.htmlmath — Mathematical functionstlibrary/mimetypes(jm jn 0https://docs.python.org/3/library/mimetypes.html)mimetypes — Map filenames to MIME typest library/mm(jm jn )https://docs.python.org/3/library/mm.htmlMultimedia Servicest library/mmap(jm jn +https://docs.python.org/3/library/mmap.html#mmap — Memory-mapped file supporttlibrary/modulefinder(jm jn 3https://docs.python.org/3/library/modulefinder.html.modulefinder — Find modules used by a scripttlibrary/modules(jm jn .https://docs.python.org/3/library/modules.htmlImporting Modulestlibrary/msilib(jm jn -https://docs.python.org/3/library/msilib.html3msilib — Read and write Microsoft Installer filestlibrary/msvcrt(jm jn -https://docs.python.org/3/library/msvcrt.html3msvcrt — Useful routines from the MS VC++ runtimetlibrary/multiprocessing(jm jn 6https://docs.python.org/3/library/multiprocessing.html-multiprocessing — Process-based parallelismt%library/multiprocessing.shared_memory(jm jn Dhttps://docs.python.org/3/library/multiprocessing.shared_memory.htmlRmultiprocessing.shared_memory — Shared memory for direct access across processestlibrary/netdata(jm jn .https://docs.python.org/3/library/netdata.htmlInternet Data Handlingt library/netrc(jm jn ,https://docs.python.org/3/library/netrc.htmlnetrc — netrc file processingt library/nis(jm jn *https://docs.python.org/3/library/nis.html/nis — Interface to Sun’s NIS (Yellow Pages)tlibrary/nntplib(jm jn .https://docs.python.org/3/library/nntplib.html nntplib — NNTP protocol clienttlibrary/numbers(jm jn .https://docs.python.org/3/library/numbers.html)numbers — Numeric abstract base classestlibrary/numeric(jm jn .https://docs.python.org/3/library/numeric.html Numeric and Mathematical Modulestlibrary/operator(jm jn /https://docs.python.org/3/library/operator.html,operator — Standard operators as functionstlibrary/optparse(jm jn /https://docs.python.org/3/library/optparse.html,optparse — Parser for command line optionst library/os(jm jn )https://docs.python.org/3/library/os.html0os — Miscellaneous operating system interfacestlibrary/os.path(jm jn .https://docs.python.org/3/library/os.path.html)os.path — Common pathname manipulationstlibrary/ossaudiodev(jm jn 2https://docs.python.org/3/library/ossaudiodev.html6ossaudiodev — Access to OSS-compatible audio devicestlibrary/pathlib(jm jn .https://docs.python.org/3/library/pathlib.html,pathlib — Object-oriented filesystem pathst library/pdb(jm jn *https://docs.python.org/3/library/pdb.htmlpdb — The Python Debuggertlibrary/persistence(jm jn 2https://docs.python.org/3/library/persistence.htmlData Persistencetlibrary/pickle(jm jn -https://docs.python.org/3/library/pickle.html&pickle — Python object serializationtlibrary/pickletools(jm jn 2https://docs.python.org/3/library/pickletools.html+pickletools — Tools for pickle developerst library/pipes(jm jn ,https://docs.python.org/3/library/pipes.html&pipes — Interface to shell pipelinestlibrary/pkgutil(jm jn .https://docs.python.org/3/library/pkgutil.html%pkgutil — Package extension utilitytlibrary/platform(jm jn /https://docs.python.org/3/library/platform.html@platform — Access to underlying platform’s identifying datatlibrary/plistlib(jm jn /https://docs.python.org/3/library/plistlib.html2plistlib — Generate and parse Apple .plist filestlibrary/poplib(jm jn -https://docs.python.org/3/library/poplib.htmlpoplib — POP3 protocol clientt library/posix(jm jn ,https://docs.python.org/3/library/posix.html,posix — The most common POSIX system callstlibrary/pprint(jm jn -https://docs.python.org/3/library/pprint.htmlpprint — Data pretty printertlibrary/profile(jm jn .https://docs.python.org/3/library/profile.htmlThe Python Profilerst library/pty(jm jn *https://docs.python.org/3/library/pty.html!pty — Pseudo-terminal utilitiest library/pwd(jm jn *https://docs.python.org/3/library/pwd.htmlpwd — The password databasetlibrary/py_compile(jm jn 1https://docs.python.org/3/library/py_compile.html*py_compile — Compile Python source filestlibrary/pyclbr(jm jn -https://docs.python.org/3/library/pyclbr.html(pyclbr — Python module browser supportt library/pydoc(jm jn ,https://docs.python.org/3/library/pydoc.html8pydoc — Documentation generator and online help systemtlibrary/pyexpat(jm jn .https://docs.python.org/3/library/pyexpat.html2xml.parsers.expat — Fast XML parsing using Expattlibrary/python(jm jn -https://docs.python.org/3/library/python.htmlPython Runtime Servicest library/queue(jm jn ,https://docs.python.org/3/library/queue.html$queue — A synchronized queue classtlibrary/quopri(jm jn -https://docs.python.org/3/library/quopri.html7quopri — Encode and decode MIME quoted-printable datatlibrary/random(jm jn -https://docs.python.org/3/library/random.html)random — Generate pseudo-random numberst library/re(jm jn )https://docs.python.org/3/library/re.html$re — Regular expression operationstlibrary/readline(jm jn /https://docs.python.org/3/library/readline.html#readline — GNU readline interfacetlibrary/reprlib(jm jn .https://docs.python.org/3/library/reprlib.html+reprlib — Alternate repr() implementationtlibrary/resource(jm jn /https://docs.python.org/3/library/resource.html'resource — Resource usage informationtlibrary/rlcompleter(jm jn 2https://docs.python.org/3/library/rlcompleter.html4rlcompleter — Completion function for GNU readlinet library/runpy(jm jn ,https://docs.python.org/3/library/runpy.html/runpy — Locating and executing Python modulest library/sched(jm jn ,https://docs.python.org/3/library/sched.htmlsched — Event schedulertlibrary/secrets(jm jn .https://docs.python.org/3/library/secrets.html?secrets — Generate secure random numbers for managing secretstlibrary/security_warnings(jm jn 8https://docs.python.org/3/library/security_warnings.htmlSecurity Considerationstlibrary/select(jm jn -https://docs.python.org/3/library/select.html%select — Waiting for I/O completiontlibrary/selectors(jm jn 0https://docs.python.org/3/library/selectors.html)selectors — High-level I/O multiplexingtlibrary/shelve(jm jn -https://docs.python.org/3/library/shelve.html$shelve — Python object persistencet library/shlex(jm jn ,https://docs.python.org/3/library/shlex.html!shlex — Simple lexical analysistlibrary/shutil(jm jn -https://docs.python.org/3/library/shutil.html%shutil — High-level file operationstlibrary/signal(jm jn -https://docs.python.org/3/library/signal.html/signal — Set handlers for asynchronous eventst library/site(jm jn +https://docs.python.org/3/library/site.html)site — Site-specific configuration hookt library/smtpd(jm jn ,https://docs.python.org/3/library/smtpd.htmlsmtpd — SMTP Servertlibrary/smtplib(jm jn .https://docs.python.org/3/library/smtplib.html smtplib — SMTP protocol clienttlibrary/sndhdr(jm jn -https://docs.python.org/3/library/sndhdr.html'sndhdr — Determine type of sound filetlibrary/socket(jm jn -https://docs.python.org/3/library/socket.html)socket — Low-level networking interfacetlibrary/socketserver(jm jn 3https://docs.python.org/3/library/socketserver.html0socketserver — A framework for network serverst library/spwd(jm jn +https://docs.python.org/3/library/spwd.html%spwd — The shadow password databasetlibrary/sqlite3(jm jn .https://docs.python.org/3/library/sqlite3.html5sqlite3 — DB-API 2.0 interface for SQLite databasest library/ssl(jm jn *https://docs.python.org/3/library/ssl.html*ssl — TLS/SSL wrapper for socket objectst library/stat(jm jn +https://docs.python.org/3/library/stat.html$stat — Interpreting stat() resultstlibrary/statistics(jm jn 1https://docs.python.org/3/library/statistics.html0statistics — Mathematical statistics functionstlibrary/stdtypes(jm jn /https://docs.python.org/3/library/stdtypes.htmlBuilt-in Typestlibrary/string(jm jn -https://docs.python.org/3/library/string.html#string — Common string operationstlibrary/stringprep(jm jn 1https://docs.python.org/3/library/stringprep.html*stringprep — Internet String Preparationtlibrary/struct(jm jn -https://docs.python.org/3/library/struct.html0struct — Interpret bytes as packed binary datatlibrary/subprocess(jm jn 1https://docs.python.org/3/library/subprocess.html$subprocess — Subprocess managementt library/sunau(jm jn ,https://docs.python.org/3/library/sunau.html%sunau — Read and write Sun AU filestlibrary/superseded(jm jn 1https://docs.python.org/3/library/superseded.htmlSuperseded Modulestlibrary/symtable(jm jn /https://docs.python.org/3/library/symtable.html5symtable — Access to the compiler’s symbol tablest library/sys(jm jn *https://docs.python.org/3/library/sys.html0sys — System-specific parameters and functionstlibrary/sys_path_init(jm jn 4https://docs.python.org/3/library/sys_path_init.html5The initialization of the sys.path module search pathtlibrary/sysconfig(jm jn 0https://docs.python.org/3/library/sysconfig.htmlDsysconfig — Provide access to Python’s configuration informationtlibrary/syslog(jm jn -https://docs.python.org/3/library/syslog.html'syslog — Unix syslog library routinestlibrary/tabnanny(jm jn /https://docs.python.org/3/library/tabnanny.html/tabnanny — Detection of ambiguous indentationtlibrary/tarfile(jm jn .https://docs.python.org/3/library/tarfile.html,tarfile — Read and write tar archive filestlibrary/telnetlib(jm jn 0https://docs.python.org/3/library/telnetlib.htmltelnetlib — Telnet clienttlibrary/tempfile(jm jn /https://docs.python.org/3/library/tempfile.html5tempfile — Generate temporary files and directoriestlibrary/termios(jm jn .https://docs.python.org/3/library/termios.html#termios — POSIX style tty controlt library/test(jm jn +https://docs.python.org/3/library/test.html,test — Regression tests package for Pythont library/text(jm jn +https://docs.python.org/3/library/text.htmlText Processing Servicestlibrary/textwrap(jm jn /https://docs.python.org/3/library/textwrap.html&textwrap — Text wrapping and fillingtlibrary/threading(jm jn 0https://docs.python.org/3/library/threading.html&threading — Thread-based parallelismt library/time(jm jn +https://docs.python.org/3/library/time.html$time — Time access and conversionstlibrary/timeit(jm jn -https://docs.python.org/3/library/timeit.html8timeit — Measure execution time of small code snippetst library/tk(jm jn )https://docs.python.org/3/library/tk.html!Graphical User Interfaces with Tktlibrary/tkinter(jm jn .https://docs.python.org/3/library/tkinter.html&tkinter — Python interface to Tcl/Tktlibrary/tkinter.colorchooser(jm jn ;https://docs.python.org/3/library/tkinter.colorchooser.html.tkinter.colorchooser — Color choosing dialogtlibrary/tkinter.dnd(jm jn 2https://docs.python.org/3/library/tkinter.dnd.html%tkinter.dnd — Drag and drop supporttlibrary/tkinter.font(jm jn 3https://docs.python.org/3/library/tkinter.font.html%tkinter.font — Tkinter font wrappertlibrary/tkinter.messagebox(jm jn 9https://docs.python.org/3/library/tkinter.messagebox.html.tkinter.messagebox — Tkinter message promptstlibrary/tkinter.scrolledtext(jm jn ;https://docs.python.org/3/library/tkinter.scrolledtext.html-tkinter.scrolledtext — Scrolled Text Widgettlibrary/tkinter.tix(jm jn 2https://docs.python.org/3/library/tkinter.tix.html(tkinter.tix — Extension widgets for Tktlibrary/tkinter.ttk(jm jn 2https://docs.python.org/3/library/tkinter.ttk.html!tkinter.ttk — Tk themed widgetst library/token(jm jn ,https://docs.python.org/3/library/token.html0token — Constants used with Python parse treestlibrary/tokenize(jm jn /https://docs.python.org/3/library/tokenize.html(tokenize — Tokenizer for Python sourcetlibrary/tomllib(jm jn .https://docs.python.org/3/library/tomllib.htmltomllib — Parse TOML filest library/trace(jm jn ,https://docs.python.org/3/library/trace.html3trace — Trace or track Python statement executiontlibrary/traceback(jm jn 0https://docs.python.org/3/library/traceback.html1traceback — Print or retrieve a stack tracebacktlibrary/tracemalloc(jm jn 2https://docs.python.org/3/library/tracemalloc.html(tracemalloc — Trace memory allocationst library/tty(jm jn *https://docs.python.org/3/library/tty.html"tty — Terminal control functionstlibrary/turtle(jm jn -https://docs.python.org/3/library/turtle.htmlturtle — Turtle graphicst library/types(jm jn ,https://docs.python.org/3/library/types.htmlhttps://docs.python.org/3/library/2to3.html#to3fixer-funcattrsjp tfuture(jm jn ;https://docs.python.org/3/library/2to3.html#to3fixer-futurejp tgetcwdu(jm jn https://docs.python.org/3/library/2to3.html#to3fixer-itertoolsjp titertools_imports(jm jn Fhttps://docs.python.org/3/library/2to3.html#to3fixer-itertools_importsjp tlong(jm jn 9https://docs.python.org/3/library/2to3.html#to3fixer-longjp tmap(jm jn 8https://docs.python.org/3/library/2to3.html#to3fixer-mapjp t metaclass(jm jn >https://docs.python.org/3/library/2to3.html#to3fixer-metaclassjp t methodattrs(jm jn @https://docs.python.org/3/library/2to3.html#to3fixer-methodattrsjp tne(jm jn 7https://docs.python.org/3/library/2to3.html#to3fixer-nejp tnext(jm jn 9https://docs.python.org/3/library/2to3.html#to3fixer-nextjp tnonzero(jm jn https://docs.python.org/3/library/2to3.html#to3fixer-raw_inputjp treduce(jm jn ;https://docs.python.org/3/library/2to3.html#to3fixer-reducejp treload(jm jn ;https://docs.python.org/3/library/2to3.html#to3fixer-reloadjp trenames(jm jn Using “guest mode” to run Trio on top of other event loopstguest-run-implementation(jcjdVhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#guest-run-implementation4Implementing guest mode for your favorite event loopthigh-level-networking(jcjdMhttps://trio.readthedocs.io/en/stable/reference-io.html#high-level-networkingSockets and networkingtinstrumentation(jcjdMhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#instrumentationInstrument APItjoining-the-team(jcjdHhttps://trio.readthedocs.io/en/stable/contributing.html#joining-the-teamJoining the teamtlive-coroutine-handoff(jcjdThttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#live-coroutine-handoffhttps://trio.readthedocs.io/en/stable/releasing.html#releasingPreparing a releasetsearch(jcjd1https://trio.readthedocs.io/en/stable/search.html Search Paget subprocess(jcjdBhttps://trio.readthedocs.io/en/stable/reference-io.html#subprocessSpawning subprocessestsubprocess-options(jcjdJhttps://trio.readthedocs.io/en/stable/reference-io.html#subprocess-options!Options for starting subprocessestsubprocess-quoting(jcjdJhttps://trio.readthedocs.io/en/stable/reference-io.html#subprocess-quoting%Quoting: more than you wanted to knowtsynchronization(jcjdIhttps://trio.readthedocs.io/en/stable/reference-core.html#synchronization-Synchronizing and communicating between tasksttask-local-storage(jcjdLhttps://trio.readthedocs.io/en/stable/reference-core.html#task-local-storageTask-local storagettasks(jcjd?https://trio.readthedocs.io/en/stable/reference-core.html#tasks(Tasks let you do multiple things at oncettesting-custom-streams(jcjdShttps://trio.readthedocs.io/en/stable/reference-testing.html#testing-custom-streams%Testing custom stream implementationsttesting-streams(jcjdLhttps://trio.readthedocs.io/en/stable/reference-testing.html#testing-streamsStreamst testing-time(jcjdIhttps://trio.readthedocs.io/en/stable/reference-testing.html#testing-timeTime and timeoutstthreads(jcjdAhttps://trio.readthedocs.io/en/stable/reference-core.html#threadsThreads (if you must)ttime-and-clocks(jcjdIhttps://trio.readthedocs.io/en/stable/reference-core.html#time-and-clocksTime and clocksttutorial-echo-client-example(jcjdPhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-echo-client-examplejp ttutorial-echo-server-example(jcjdPhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-echo-server-exampleAn echo serverttutorial-example-tasks-intro(jcjdPhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-example-tasks-introjp ttutorial-instrument-example(jcjdOhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-instrument-exampleTask switching illustratedtvirtual-network-hooks(jcjdRhttps://trio.readthedocs.io/en/stable/reference-testing.html#virtual-network-hooksVirtual networking for testingtvirtual-streams(jcjdLhttps://trio.readthedocs.io/en/stable/reference-testing.html#virtual-streamsVirtual, controllable streamstworker-thread-limiting(jcjdPhttps://trio.readthedocs.io/en/stable/reference-core.html#worker-thread-limiting1Trio’s philosophy about managing worker threadstustd:term}asynchronous file object(jcjdQhttps://trio.readthedocs.io/en/stable/glossary.html#term-asynchronous-file-objectjp tsstd:doc}(awesome-trio-libraries(jcjdAhttps://trio.readthedocs.io/en/stable/awesome-trio-libraries.htmlAwesome Trio Librariestcode-of-conduct(jcjd:https://trio.readthedocs.io/en/stable/code-of-conduct.htmlCode of Conductt contributing(jcjd7https://trio.readthedocs.io/en/stable/contributing.html)Contributing to Trio and related projectstdesign(jcjd1https://trio.readthedocs.io/en/stable/design.htmlDesign and internalstglossary(jcjd3https://trio.readthedocs.io/en/stable/glossary.htmlGlossarythistory(jcjd2https://trio.readthedocs.io/en/stable/history.htmlRelease historytindex(jcjd0https://trio.readthedocs.io/en/stable/index.html=Trio: a friendly Python library for async concurrency and I/Otreference-core(jcjd9https://trio.readthedocs.io/en/stable/reference-core.htmlTrio’s core functionalityt reference-io(jcjd7https://trio.readthedocs.io/en/stable/reference-io.html I/O in Triotreference-lowlevel(jcjd=https://trio.readthedocs.io/en/stable/reference-lowlevel.html3Introspecting and extending Trio with trio.lowleveltreference-testing(jcjd j@ jA jC jD jF jG jI jJ jL jM jO jP jR jS jU jV jX jY j[ j\ j^ j_ ja jb jd je jg jh jj jk jm jn jp jq js jt jv jw jy jz j| j} j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j jjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&uj'}(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j j j j j j j j j j j j j j j j j j j j! j" j$ j% j' j( j* j+ j- j. j0 j1 j3 j4 j6 j7 j9 j: j< j= j? j@ jB jC jE jF jH jI jK jL jN jO jQ jR jT jU jW jX jZ j[ j] j^ j` ja jc jd jf jg ji jj jl jm jo jp jr js ju jv jx jy j{ j| j~ j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j!j!j!j!j!j!j !j !j !j!j!j!j!j!j!j!j!j!j!j!j!j !j!!j#!j$!j&!j'!j)!j*!j,!j-!j/!j0!j2!j3!j5!j6!j8!j9!j;!j!j?!jA!jB!jD!jE!jG!jH!jJ!jK!jM!jN!jP!jQ!jS!jT!jV!jW!jY!jZ!j\!j]!j_!j`!jb!jc!je!jf!jh!ji!jk!jl!jn!jo!jq!jr!jt!ju!jw!jx!jz!j{!j}!j~!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j!j"j"j"j"j"j"j "j "j "j"j"j"j"j"j"j"j"j"j"j"j"j "j""j#"j%"j&"j("j)"j+"j,"j."j/"j1"j2"j4"j5"j7"j8"j:"j;"j="j>"j@"jA"jC"jD"jF"jG"jI"jJ"jL"jM"jO"jP"jR"jS"jU"jV"jX"jY"j["j\"j^"j_"ja"jb"jd"je"jg"jh"jj"jk"jm"jn"jp"jq"js"jt"jv"jw"jy"jz"j|"j}"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j"j#j#j#j#j#j#j #j #j #j #j#j#j#j#j#j#j#j#j#j#j#j#j!#j"#j$#j%#j'#j(#j*#j+#j-#j.#j0#j1#j3#j4#j6#j7#j9#j:#j<#j=#j?#j@#jB#jC#jE#jF#jH#jI#jK#jL#jN#jO#jQ#jR#jT#jU#jW#jX#jZ#j[#j]#j^#j`#ja#jc#jd#jf#jg#ji#jj#jl#jm#jo#jp#jr#js#ju#jv#jx#jy#j{#j|#j~#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j$j$j$j$j$j$j $j $j $j$j$j$j$j$j$j$j$j$j$j$j$j $j!$j#$j$$j&$j'$j)$j*$j,$j-$j/$j0$j2$j3$j5$j6$j8$j9$j;$j<$j>$j?$jA$jB$jD$jE$jG$jH$jJ$jK$jM$jN$jP$jQ$jS$jT$jV$jW$jY$jZ$j\$j]$j_$j`$jb$jc$je$jf$jh$ji$jk$jl$jn$jo$jq$jr$jt$ju$jw$jx$jz$j{$j}$j~$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j$j%j%j%j%j%j%j %j %j %j%j%j%j%j%j%j%j%j%j%j%j%j %j"%j#%j%%j&%j(%j)%j+%j,%j.%j/%j1%j2%j4%j5%j7%j8%j:%j;%j=%j>%j@%jA%jC%jD%jF%jG%jI%jJ%jL%jM%jO%jP%jR%jS%jU%jV%jX%jY%j[%j\%j^%j_%ja%jb%jd%je%jg%jh%jj%jk%jm%jn%jp%jq%js%jt%jv%jw%jy%jz%j|%j}%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j%j&j&j&j&j&j&j &j &j &j &j&j&j&j&j&j&j&j&j&j&j&j&j!&j"&j$&j%&j'&j(&j*&j+&j-&j.&j0&j1&j3&j4&j6&j7&j9&j:&j<&j=&j?&j@&jB&jC&jE&jF&jH&jI&jK&jL&jN&jO&jQ&jR&jT&jU&jW&jX&jZ&j[&j]&j^&j`&ja&jc&jd&jf&jg&ji&jj&jl&jm&jo&jp&jr&js&ju&jv&jx&jy&j{&j|&j~&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j'j'j'j'j'j'j 'j 'j 'j'j'j'j'j'j'j'j'j'j'j'j'j 'j!'j#'j$'j&'j''j)'j*'j,'j-'j/'j0'j2'j3'j5'j6'j8'j9'j;'j<'j>'j?'jA'jB'jD'jE'jG'jH'jJ'jK'jM'jN'jP'jQ'jS'jT'jV'jW'jY'jZ'j\'j]'j_'j`'jb'jc'je'jf'jh'ji'jk'jl'jn'jo'jq'jr'jt'ju'jw'jx'jz'j{'j}'j~'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j'j(j(j(j(j(j(j (j (j (j(j(j(j(j(j(j(j(j(j(j(j(j (j"(j#(j%(j&(j((j)(j+(j,(j.(j/(j1(j2(j4(j5(j7(j8(j:(j;(j=(j>(j@(jA(jC(jD(jF(jG(jI(jJ(jL(jM(jO(jP(jR(jS(jU(jV(jX(jY(j[(j\(j^(j_(ja(jb(jd(je(jg(jh(jj(jk(jm(jn(jp(jq(js(jt(jv(jw(jy(jz(j|(j}(j(j(j(u(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j)j)j)j)j)j)j )j )j )j )j)j)j)j)j)j)j)j)j)j)j)j)j!)j")j$)j%)j')j()j*)j+)j-)j.)j0)j1)j3)j4)j6)j7)j9)j:)j<)j=)j?)j@)jB)jC)jE)jF)jH)jI)jK)jL)jN)jO)jQ)jR)jT)jU)jW)jX)jZ)j[)j])j^)j`)ja)jc)jd)jf)jg)ji)jj)jl)jm)jo)jp)jr)js)ju)jv)jx)jy)j{)j|)j~)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j)j*j*j*j*j*j*j *j *j *j*j*j*j*j*j*j*j*j*j*j*j*j *j!*j#*j$*j&*j'*j)*j**j,*j-*j/*j0*j2*j3*j5*j6*j8*j9*j;*j<*j>*j?*jA*jB*jD*jE*jG*jH*jJ*jK*jM*jN*jP*jQ*jS*jT*jV*jW*jY*jZ*j\*j]*j_*j`*jb*jc*je*jf*jh*ji*jk*jl*jn*jo*jq*jr*jt*ju*jw*jx*jz*j{*j}*j~*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j*j+j+j+j+j+j+j +j +j +j+j+j+j+j+j+j+j+j+j+j+j+j +j"+j#+j%+j&+j(+j)+j++j,+j.+j/+j1+j2+j4+j5+j7+j8+j:+j;+j=+j>+j@+jA+jC+jD+jF+jG+jI+jJ+jL+jM+jO+jP+jR+jS+jU+jV+jX+jY+j[+j\+j^+j_+ja+jb+jd+je+jg+jh+jj+jk+jm+jn+jp+jq+js+jt+jv+jw+jy+jz+j|+j}+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j+j,j,j,j,j,j,j ,j ,j ,j ,j,j,j,j,j,j,j,j,j,j,j,j,j!,j",j$,j%,j',j(,j*,j+,j-,j.,j0,j1,j3,j4,j6,j7,j9,j:,j<,j=,j?,j@,jB,jC,jE,jF,jH,jI,jK,jL,jN,jO,jQ,jR,jT,jU,jW,jX,jZ,j[,j],j^,j`,ja,jc,jd,jf,jg,ji,jj,jl,jm,jo,jp,jr,js,ju,jv,jx,jy,j{,j|,j~,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j-j-j-j-j-j-j -j -j -j-j-j-j-j-j-j-j-j-j-j-j-j -j!-j#-j$-j&-j'-j)-j*-j,-j--j/-j0-j2-j3-j5-j6-j8-j9-j;-j<-j>-j?-jA-jB-jD-jE-jG-jH-jJ-jK-jM-jN-jP-jQ-jS-jT-jV-jW-jY-jZ-j\-j]-j_-j`-jb-jc-je-jf-jh-ji-jk-jl-jn-jo-jq-jr-jt-ju-jw-jx-jz-j{-j}-j~-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j-j.j.j.j.j.j.j .j .j .j.j.j.j.j.j.j.j.j.j.j.j.j .j".j#.j%.j&.j(.j).j+.j,.j..j/.j1.j2.j4.j5.j7.j8.j:.j;.j=.j>.j@.jA.jC.jD.jF.jG.jI.jJ.jL.jM.jO.jP.jR.jS.jU.jV.jX.jY.j[.j\.j^.j_.ja.jb.jd.je.jg.jh.jj.jk.jm.jn.jp.jq.js.jt.jv.jw.jy.jz.j|.j}.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j/j/j/j/j/j/j /j /j /j /j/j/j/j/j/j/j/j/j/j/j/j/j!/j"/j$/j%/j'/j(/j*/j+/j-/j./j0/j1/j3/j4/j6/j7/j9/j:/j0j?0jA0jB0jD0jE0jG0jH0jJ0jK0jM0jN0jP0jQ0jS0jT0jV0jW0jY0jZ0j\0j]0j_0j`0jb0jc0je0jf0jh0ji0jk0jl0jn0jo0jq0jr0jt0ju0jw0jx0jz0j{0j}0j~0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0uj0}(j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j1j1j1j1j1j1j 1j 1j 1j 1j1j1j1j1j1j1j1j1j1j1j1j1j!1j"1j$1j%1j'1j(1j*1j+1j-1j.1j01j11j31j41j61j71j91j:1j<1j=1j?1j@1jB1jC1jE1jF1jH1jI1jK1jL1jN1jO1jQ1jR1jT1jU1jW1jX1jZ1j[1j]1j^1j`1ja1jc1jd1jf1jg1ji1jj1jl1jm1jo1jp1jr1js1ju1jv1jx1jy1j{1j|1j~1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1j1uj1}(j1j1j1j1j1j1uj1}(j1j2j2j2j2j2j2j 2j 2j 2j 2j2j2j2j2j2j2j2j2j2j2j2j2j!2j"2j$2j%2j'2j(2j*2j+2j-2j.2j02j12j32j42j62j72j92j:2j<2j=2j?2j@2jB2jC2jE2jF2jH2jI2jK2jL2jN2jO2jQ2jR2jT2jU2jW2jX2jZ2j[2j]2j^2j`2ja2jc2jd2jf2jg2ji2jj2jl2jm2jo2jp2jr2js2ju2jv2jx2jy2j{2j|2j~2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j2j3j3j3j3j3j3j 3j 3j 3j3j3j3j3j3j3j3j3j3j3j3j3j 3j!3j#3j$3j&3j'3j)3j*3j,3j-3j/3j03j23j33j53j63j83j93j;3j<3j>3j?3jA3jB3jD3jE3jG3jH3jJ3jK3jM3jN3jP3jQ3jS3jT3jV3jW3jY3jZ3j\3j]3j_3j`3jb3jc3je3jf3jh3ji3jk3jl3jn3jo3jq3jr3jt3ju3jw3jx3jz3j{3j}3j~3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j3j4j4j4j4j4j4j 4j 4j 4j4j4j4j4j4j4j4j4j4j4j4j4j 4j"4j#4j%4j&4j(4j)4j+4j,4j.4j/4j14j24j44j54j74j84j:4j;4j=4j>4j@4jA4jC4jD4jF4jG4jI4jJ4jL4jM4jO4jP4jR4jS4jU4jV4jX4jY4j[4j\4j^4j_4ja4jb4jd4je4jg4jh4jj4jk4jm4jn4jp4jq4js4jt4jv4jw4jy4jz4j|4j}4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j4j5j5j5j5j5j5j 5j 5j 5j 5j5j5j5j5j5j5j5j5j5j5j5j5j!5j"5j$5j%5j'5j(5j*5j+5j-5j.5j05j15j35j45j65j75j95j:5j<5j=5j?5j@5jB5jC5jE5jF5jH5jI5jK5jL5jN5jO5jQ5jR5jT5jjjjjjjjjjjjjjj j j jjjjjujU5}(jW5jY5jZ5j\5j]5j_5j`5jb5jc5je5jf5jh5ji5jk5jl5jn5jo5jq5jr5jt5ju5jw5jx5jz5j{5j}5j~5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j5j6j6j6j6j6j6j 6j 6j 6j6j6j6j6j6j6j6j6j6j6j6j6j 6j"6j#6j%6j&6j(6j)6j+6j,6j.6j/6j16j26j46j56j76j86j:6j;6j=6j>6j@6jA6jC6jD6jF6jG6jI6jJ6jL6jM6jO6jP6jR6jS6jU6jV6jX6jY6j[6j\6j^6j_6ja6jb6jd6je6jg6jh6jj6jk6jm6jn6jp6jq6js6jt6jv6jw6jy6jz6j|6j}6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j7j7j7j7j7j7j 7j 7j 7j 7j7j7j7j7j7j7j7j7j7j7j7j7j!7j"7j$7j%7j'7j(7j*7j+7j-7j.7j07j17j37j47j67j77j97j:7j<7j=7j?7j@7jB7jC7jE7jF7jH7jI7jK7jL7jN7jO7jQ7jR7jT7jU7jW7jX7jZ7j[7j]7j^7j`7ja7jc7jd7jf7jg7ji7jj7jl7jm7jo7jp7jr7js7ju7jv7jx7jy7j{7j|7j~7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j7j8j8j8j8j8j8j 8j 8j 8j8j8j8j8j8j8j8j8j8j8j8j8j 8j!8j#8j$8j&8j'8j)8j*8j,8j-8j/8j08j28j38j58j68j88j98j;8j<8j>8j?8jA8jB8jD8jE8jG8jH8jJ8jK8jM8jN8jP8jQ8jS8jT8jV8jW8jY8jZ8j\8j]8j_8j`8jb8jc8je8jf8jh8ji8jk8jl8jn8jo8jq8jr8jt8ju8jw8jx8jz8j{8j}8j~8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j8j9j9j9j9j9j9j 9j 9j 9j9j9j9j9j9j9j9j9j9j9j9j9j 9j"9j#9j%9j&9j(9j)9j+9j,9j.9j/9j19j29j49j59j79j89j:9j;9j=9j>9j@9jA9jC9jD9jF9jG9jI9jJ9jL9jM9jO9jP9jR9jS9jU9jV9jX9jY9j[9j\9j^9j_9ja9jb9jd9je9jg9jh9jj9jk9jm9jn9jp9jq9js9jt9jv9jw9jy9jz9j|9j}9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j9j:j:j:j:j:j:j :j :j :j :j:j:j:j:j:j:j:j:j:j:j:j:j!:j":j$:j%:j':j(:j*:j+:j-:j.:j0:j1:j3:j4:j6:j7:j9:j::j<:j=:j?:j@:jB:jC:jE:jF:jH:jI:jK:jL:jN:jO:jQ:jR:jT:jU:jW:jX:jZ:j[:j]:j^:j`:ja:jc:jd:jf:jg:ji:jj:jl:jm:jo:jp:jr:js:ju:jv:jx:jy:j{:j|:j~:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j:j;j;j;j;j;j;j ;j ;j ;j;j;j;j;j;j;j;j;j;j;j;j;j ;j!;j#;j$;j&;j';j);j*;j,;j-;j/;j0;j2;j3;j5;j6;j8;j9;j;;j<;j>;j?;jA;jB;jD;jE;jG;jH;jJ;jK;jM;jN;jP;jQ;jS;jT;jV;jW;jY;jZ;j\;j];j_;j`;jb;jc;je;jf;jh;ji;jk;jl;jn;jo;jq;jr;jt;ju;jw;jx;jz;j{;j};j~;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j;j<j<j<j<j<j<j <j <j <j<j<j<j<j<j<j<j<j<j<j<j<j <j"<j#<j%<j&<j(<j)<j+<j,<j.<j/<j1<j2<j4<j5<j7<j8<j:<j;<j=<j><j@<jA<jC<jD<jF<jG<jI<jJ<jL<jM<jO<jP<jR<jS<jU<jV<jX<jY<j[<j\<j^<j_<ja<jb<jd<je<jg<jh<jj<jk<jm<jn<jp<jq<js<jt<jv<jw<jy<jz<j|<j}<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j<j=j=j=j=j=j=j =j =j =j =j=j=j=j=j=j=j=j=j=j=j=j=j!=j"=j$=j%=j'=j(=j*=j+=j-=j.=j0=j1=j3=j4=j6=j7=j9=j:=j<=j==j?=j@=jB=jC=jE=jF=jH=jI=jK=jL=jN=jO=jQ=jR=jT=jU=jW=jX=jZ=j[=j]=j^=j`=ja=jc=jd=jf=jg=ji=jj=jl=jm=jo=jp=jr=js=ju=jv=jx=jy=j{=j|=j~=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j>j>j>j>j>j>j >j >j >j>j>j>j>j>j>j>j>j>j>j>j>j >j!>j#>j$>j&>j'>j)>j*>j,>j->j/>j0>j2>j3>j5>j6>j8>j9>j;>j<>j>>j?>jA>jB>jD>jE>jG>jH>jJ>jK>jM>jN>jP>jQ>jS>jT>jV>jW>jY>jZ>j\>j]>j_>j`>jb>jc>je>jf>jh>ji>jk>jl>jn>jo>jq>jr>jt>ju>jw>jx>jz>j{>j}>j~>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j>j?j?j?j?j?j?j ?j ?j ?j?j?j?j?j?j?j?j?j?j?j?j?j ?j"?j#?j%?j&?j(?j)?j+?j,?j.?j/?j1?j2?j4?j5?j7?j8?j:?j;?j=?j>?j@?jA?jC?jD?jF?jG?jI?jJ?jL?jM?jO?jP?jR?jS?jU?jV?jX?jY?j[?j\?j^?j_?ja?jb?jd?je?jg?jh?jj?jk?jm?jn?jp?jq?js?jt?jv?jw?jy?jz?j|?j}?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j?j@j@j@j@j@j@j @j @j @j @j@j@j@j@j@j@j@j@j@j@j@j@j!@j"@j$@j%@j'@j(@j*@j+@j-@j.@j0@j1@j3@j4@j6@j7@j9@j:@j<@j=@j?@j@@jB@jC@jE@jF@jH@jI@jK@jL@jN@jO@jQ@jR@jT@jU@jW@jX@jZ@j[@j]@j^@j`@ja@jc@jd@jf@jg@ji@jj@jl@jm@jo@jp@jr@js@ju@jv@jx@jy@j{@j|@j~@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@j@jAjAjAjAjAjAj Aj Aj AjAu(jAjAjAjAjAjAjAjAjAjAjAj Aj!Aj#Aj$Aj&Aj'Aj)Aj*Aj,Aj-Aj/Aj0Aj2Aj3Aj5Aj6Aj8Aj9Aj;AjAj?AjAAjBAjDAjEAjGAjHAjJAjKAjMAjNAjPAjQAjSAjTAjVAjWAjYAjZAj\Aj]Aj_Aj`AjbAjcAjeAjfAjhAjiAjkAjlAjnAjoAjqAjrAjtAjuAjwAjxAjzAj{Aj}Aj~AjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAj}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjujA}(jAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjAjBjBjBjBjBjBj Bj Bj Bj BjBjBjBjBjBjBjBjBjBjBjBjBj!Bj"Bj$Bj%Bj'Bj(Bj*Bj+Bj-Bj.Bj0Bj1Bj3Bj4Bj6Bj7Bj9Bj:BjCj?CjACjBCjDCjECjGCjHCjJCjKCjMCjNCjPCjQCjSCjTCjVCjWCjYCjZCj\Cj]Cj_Cj`CjbCjcCjeCjfCjhCjiCjkCjlCjnCjoCjqCjrCjtCjuCjwCjxCjzCj{Cj}Cj~CjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjDjDjDjDjDjDj Dj Dj DjDjDjDjDjDjDjDjDjDjDjDjDj Dj"Dj#Dj%Dj&Dj(Dj)Dj+Dj,Dj.Dj/Dj1Dj2Dj4Dj5Dj7Dj8Dj:Dj;Dj=Dj>Dj@DjADjCDjDDjFDjGDjIDjJDjLDjMDjODjPDjRDjSDjUDjVDjXDjYDj[Dj\Dj^Dj_DjaDjbDjdDjeDjgDjhDjjDjkDjmDjnDjpDjqDjsDjtDjvDjwDjyDjzDj|Dj}DjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjDjEjEjEjEjEjEj Ej Ej Ej EjEjEjEjEjEjEjEjEjEjEjEjEj!Ej"Ej$Ej%Ej'Ej(Ej*Ej+Ej-Ej.Ej0Ej1Ej3Ej4Ej6Ej7Ej9Ej:EjFj?FjAFjBFjDFjEFjGFjHFjJFjKFjMFjNFjPFjQFjSFjTFjVFjWFjYFjZFj\Fj]Fj_Fj`FjbFjcFjeFjfFjhFjiFjkFjlFjnFjoFjqFjrFjtFjuFjwFjxFjzFj{Fj}Fj~FjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjGjGjGjGjGjGj Gj Gj GjGjGjGjGjGjGjGjGjGjGjGjGj Gj"Gj#Gj%Gj&Gj(Gj)Gj+Gj,Gj.Gj/Gj1Gj2Gj4Gj5Gj7Gj8Gj:Gj;Gj=Gj>Gj@GjAGjCGjDGjFGjGGjIGjJGjLGjMGjOGjPGjRGjSGjUGjVGjXGjYGj[Gj\Gj^Gj_GjaGjbGjdGjeGjgGjhGjjGjkGjmGjnGjpGjqGjsGjtGjvGjwGjyGjzGj|Gj}GjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjGjHjHjHjHjHjHj Hj Hj Hj HjHjHjHjHjHjHjHjHjHjHjHjHj!Hj"Hj$Hj%Hj'Hj(Hj*Hj+Hj-Hj.Hj0Hj1Hj3Hj4Hj6Hj7Hj9Hj:HjIj?IjAIjBIjDIjEIjGIjHIjJIjKIjMIjNIjPIjQIjSIjTIjVIjWIjYIjZIj\Ij]Ij_Ij`IjbIjcIjeIjfIjhIjiIjkIjlIjnIjoIjqIjrIjtIjuIjwIjxIjzIj{Ij}Ij~IjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjIjJjJjJjJjJjJj Jj Jj JjJjJjJjJjJjJjJjJjJjJjJjJj Jj"Jj#Jj%Jj&Jj(Jj)Jj+Jj,Jj.Jj/Jj1Jj2Jj4Jj5Jj7Jj8Jj:Jj;Jj=Jj>Jj@JjAJjCJjDJjFJjGJjIJjJJjLJjMJjOJjPJjRJjSJjUJjVJjXJjYJj[Jj\Jj^Jj_JjaJjbJjdJjeJjgJjhJjjJjkJjmJjnJjpJjqJjsJjtJjvJjwJjyJjzJj|Jj}JjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjJjKjKjKjKjKjKj Kj Kj Kj KjKjKjKjKjKjKjKjKjKjKjKjKj!Kj"Kj$Kj%Kj'Kj(Kj*Kj+Kj-Kj.Kj0Kj1Kj3Kj4Kj6Kj7Kj9Kj:KjLj?LjALjBLjDLjELjGLjHLjJLjKLjMLjNLjPLjQLjSLjTLjVLjWLjYLjZLj\Lj]Lj_Lj`LjbLjcLjeLjfLjhLjiLjkLjlLjnLjoLjqLjrLjtLjuLjwLjxLjzLj{Lj}Lj~LjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjLjMjMjMjMjMjMj Mj Mj MjMjMjMjMjMjMjMjMjMjMjMjMj Mj"Mj#Mj%Mj&Mj(Mj)Mj+Mj,Mj.Mj/Mj1Mj2Mj4Mj5Mj7Mj8Mj:Mj;Mj=Mj>Mj@MjAMjCMjDMjFMjGMjIMjJMjLMjMMjOMjPMjRMjSMjUMjVMjXMjYMj[Mj\Mj^Mj_MjaMjbMjdMjeMjgMjhMjjMjkMjmMjnMjpMjqMjsMjtMjvMjwMjyMjzMj|Mj}MjMjMjMjMjMjMjMjMjMjMjMjMjMu(jMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjMjNjNjNjNjNjNj Nj Nj Nj NjNjNjNjNjNjNjNjNjNjNjNjNj!Nj"Nj$Nj%Nj'Nj(Nj*Nj+Nj-Nj.Nj0Nj1Nj3Nj4Nj6Nj7Nj9Nj:NjOj?OjAOjBOjDOjEOjGOjHOjJOjKOjMOjNOjPOjQOjSOjTOjVOjWOjYOjZOj\Oj]Oj_Oj`OjbOjcOjeOjfOjhOjiOjkOjlOjnOjoOjqOjrOjtOjuOjwOjxOjzOj{Oj}Oj~OjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjOjPjPjPjPjPjPj Pj Pj PjPjPjPjPjPjPjPjPjPjPjPjPj Pj"Pj#Pj%Pj&Pj(Pj)Pj+Pj,Pj.Pj/Pj1Pj2Pj4Pj5Pj7Pj8Pj:Pj;Pj=Pj>Pj@PjAPjCPjDPjFPjGPjIPjJPjLPjMPjOPjPPjRPjSPjUPjVPjXPjYPj[Pj\Pj^Pj_PjaPjbPjdPjePjgPjhPjjPjkPjmPjnPjpPjqPjsPjtPjvPjwPjyPjzPj|Pj}PjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjQjQjQjQjQjQj Qj Qj Qj QjQjQjQjQjQjQjQjQjQjQjQjQj!Qj"Qj$Qj%Qj'Qj(Qj*Qj+Qj-Qj.Qj0Qj1Qj3Qj4Qj6Qj7Qj9Qj:QjRj?RjARjBRjDRjERjGRjHRjJRjKRjMRjNRjPRjQRjSRjTRjVRjWRjYRjZRj\Rj]Rj_Rj`RjbRjcRjeRjfRjhRjiRjkRjlRjnRjoRjqRjrRjtRjuRjwRjxRjzRj{Rj}Rj~RjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjSjSjSjSjSjSj Sj Sj SjSjSjSjSjSjSjSjSjSjSjSjSj Sj"Sj#Sj%Sj&Sj(Sj)Sj+Sj,Sj.Sj/Sj1Sj2Sj4Sj5Sj7Sj8Sj:Sj;Sj=Sj>Sj@SjASjCSjDSjFSjGSjISjJSjLSjMSjOSjPSjRSjSSjUSjVSjXSjYSj[Sj\Sj^Sj_SjaSjbSjdSjeSjgSjhSjjSjkSjmSjnSjpSjqSjsSjtSjvSjwSjySjzSj|Sj}SjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjSjTjTjTjTjTjTj Tj Tj Tj TjTjTjTjTjTjTjTjTjTjTjTjTj!Tj"Tj$Tj%Tj'Tj(Tj*Tj+Tj-Tj.Tj0Tj1Tj3Tj4Tj6Tj7Tj9Tj:TjUj?UjAUjBUjDUjEUjGUjHUjJUjKUjMUjNUjPUjQUjSUjTUjVUjWUjYUjZUj\Uj]Uj_Uj`UjbUjcUjeUjfUjhUjiUjkUjlUjnUjoUjqUjrUjtUjuUjwUjxUjzUj{Uj}Uj~UjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjVjVjVjVjVjVj Vj Vj VjVjVjVjVjVjVjVjVjVjVjVjVj Vj"Vj#Vj%Vj&Vj(Vj)Vj+Vj,Vj.Vj/Vj1Vj2Vj4Vj5Vj7Vj8Vj:Vj;Vj=Vj>Vj@VjAVjCVjDVjFVjGVjIVjJVjLVjMVjOVjPVjRVjSVjUVjVVjXVjYVj[Vj\Vj^Vj_VjaVjbVjdVjeVjgVjhVjjVjkVjmVjnVjpVjqVjsVjtVjvVjwVjyVjzVj|Vj}VjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjVjWjWjWjWjWjWj Wj Wj Wj WjWjWjWjWjWjWjWjWjWjWjWjWj!Wj"Wj$Wj%Wj'Wj(Wj*Wj+Wj-Wj.Wj0Wj1Wj3Wj4Wj6Wj7Wj9Wj:WjXj?XjAXjBXjDXjEXjGXjHXjJXjKXjMXjNXjPXjQXjSXjTXjVXjWXjYXjZXj\Xj]Xj_Xj`XjbXjcXjeXjfXjhXjiXjkXjlXjnXjoXjqXjrXjtXjuXjwXjxXjzXj{Xj}Xj~XjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjYjYjYjYjYjYj Yj Yj YjYjYjYjYjYjYjYjYjYjYjYjYj Yj"Yj#Yj%Yj&Yj(Yj)Yj+Yj,Yj.Yj/Yj1Yj2Yj4Yj5Yj7Yj8Yj:Yj;Yj=Yj>Yj@YjAYjCYjDYjFYjGYjIYu(jJYjLYjMYjOYjPYjRYjSYjUYjVYjXYjYYj[Yj\Yj^Yj_YjaYjbYjdYjeYjgYjhYjjYjkYjmYjnYjpYjqYjsYjtYjvYjwYjyYjzYj|Yj}YjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjYjZjZjZjZjZjZj Zj Zj Zj ZjZjZjZjZjZjZjZjZjZjZjZjZj!Zj"Zj$Zj%Zj'Zj(Zj*Zj+Zj-Zj.Zj0Zj1Zj3Zj4Zj6Zj7Zj9Zj:Zj[j?[jA[jB[jD[jE[jG[jH[jJ[jK[jM[jN[jP[jQ[jS[jT[jV[jW[jY[jZ[j\[j][j_[j`[jb[jc[je[jf[jh[ji[jk[jl[jn[jo[jq[jr[jt[ju[jw[jx[jz[j{[j}[j~[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j\j\j\j\j\j\j \j \j \j\j\j\j\j\j\j\j\j\j\j\j\j \j"\j#\j%\j&\j(\j)\j+\j,\j.\j/\j1\j2\j4\j5\j7\j8\j:\j;\j=\j>\j@\jA\jC\jD\jF\jG\jI\jJ\jL\jM\jO\jP\jR\jS\jU\jV\jX\jY\j[\j\\j^\j_\ja\jb\jd\je\jg\jh\jj\jk\jm\jn\jp\jq\js\jt\jv\jw\jy\jz\j|\j}\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j\j]j]j]j]j]j]j ]j ]j ]j ]j]j]j]j]j]j]j]j]j]j]j]j]j!]j"]j$]j%]j']j(]j*]j+]j-]j.]j0]j1]j3]j4]j6]j7]j9]j:]j<]j=]j?]j@]jB]jC]jE]jF]jH]jI]jK]jL]jN]jO]jQ]jR]jT]jU]jW]jX]jZ]j[]j]]j^]j`]ja]jc]jd]jf]jg]ji]jj]jl]jm]jo]jp]jr]js]ju]jv]jx]jy]j{]j|]j~]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j]j^j^j^j^j^j^j ^j ^j ^j^j^j^j^j^j^j^j^j^j^j^j^j ^j!^j#^j$^j&^j'^j)^j*^j,^j-^j/^j0^j2^j3^j5^j6^j8^j9^j;^j<^j>^j?^jA^jB^jD^jE^jG^jH^jJ^jK^jM^jN^jP^jQ^jS^jT^jV^jW^jY^jZ^j\^j]^j_^j`^jb^jc^je^jf^jh^ji^jk^jl^jn^jo^jq^jr^jt^ju^jw^jx^jz^j{^j}^j~^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j_j_j_j_j_j_j _j _j _j_j_j_j_j_j_j_j_j_j_j_j_j _j"_j#_j%_j&_j(_j)_j+_j,_j._j/_j1_j2_j4_j5_j7_j8_j:_j;_j=_j>_j@_jA_jC_jD_jF_jG_jI_jJ_jL_jM_jO_jP_jR_jS_jU_jV_jX_jY_j[_j\_j^_j__ja_jb_jd_je_jg_jh_jj_jk_jm_jn_jp_jq_js_jt_jv_jw_jy_jz_j|_j}_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j_j`j`j`j`j`j`j `j `j `j `j`j`j`j`j`j`j`j`j`j`j`j`j!`j"`j$`j%`j'`j(`j*`j+`j-`j.`j0`j1`j3`j4`j6`j7`j9`j:`j<`j=`j?`j@`jB`jC`jE`jF`jH`jI`jK`jL`jN`jO`jQ`jR`jT`jU`jW`jX`jZ`j[`j]`j^`j``ja`jc`jd`jf`jg`ji`jj`jl`jm`jo`jp`jr`js`ju`jv`jx`jy`j{`j|`j~`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`j`jajajajajajaj aj aj ajajajajajajajajajajajajaj aj!aj#aj$aj&aj'aj)aj*aj,aj-aj/aj0aj2aj3aj5aj6aj8aj9aj;ajaj?ajAajBajDajEajGajHajJajKajMajNajPajQajSajTajVajWajYajZaj\aj]aj_aj`ajbajcajeajfajhajiajkajlajnajoajqajrajtajuajwajxajzaj{aj}aj~ajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajbjbjbjbjbjbj bj bj bjbjbjbjbjbjbjbjbjbjbjbjbj bj"bj#bj%bj&bj(bj)bj+bj,bj.bj/bj1bj2bj4bj5bj7bj8bj:bj;bj=bj>bj@bjAbjCbjDbjFbjGbjIbjJbjLbjMbjObjPbjRbjSbjUbjVbjXbjYbj[bj\bj^bj_bjabjbbjdbjebjgbjhbjjbjkbjmbjnbjpbjqbjsbjtbjvbjwbjybjzbj|bj}bjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjcjcjcjcjcjcj cj cj cj cjcjcjcjcjcjcjcjcjcjcjcjcj!cj"cj$cj%cj'cj(cj*cj+cj-cj.cj0cj1cj3cj4cj6cj7cj9cj:cjdj?djAdjBdjDdjEdjGdjHdjJdjKdjMdjNdjPdjQdjSdjTdjVdjWdjYdjZdj\dj]dj_dj`djbdjcdjedjfdjhdjidjkdjldjndjodjqdjrdjtdjudjwdjxdjzdj{dj}dj~djdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjeu(jejejejejej ej ej ejejejejejejejejejejejejej ej"ej#ej%ej&ej(ej)ej+ej,ej.ej/ej1ej2ej4ej5ej7ej8ej:ej;ej=ej>ej@ejAejCejDejFejGejIejJejLejMejOejPejRejSejUejVejXejYej[ej\ej^ej_ejaejbejdejeejgejhejjejkejmejnejpejqejsejtejvejwejyejzej|ej}ejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejfjfjfjfjfjfj fj fj fj fjfjfjfjfjfjfjfjfjfjfjfjfj!fj"fj$fj%fj'fj(fj*fj+fj-fj.fj0fj1fj3fj4fj6fj7fj9fj:fjgj?gjAgjBgjDgjEgjGgjHgjJgjKgjMgjNgjPgjQgjSgjTgjVgjWgjYgjZgj\gj]gj_gj`gjbgjcgjegjfgjhgjigjkgjlgjngjogjqgjrgjtgjugjwgjxgjzgj{gj}gj~gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjujg}(jgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjhjhjhjhjhjhj hj hj hj hjhjhjhjhjhjhjhjhjhjhjhjhj!hj"hj$hj%hj'hj(hj*hj+hj-hj.hj0hj1hj3hj4hj6hj7hj9hj:hjij?ijAijBijDijEijGijHijJijKijMijNijPijQijSijTijVijWijYijZij\ij]ij_ij`ijbijcijeijfijhijiijkijlijnijoijqijrijtijuijwijxijzij{ij}ij~ijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijjjjjjjjjjjjj jj jj jjjjjjjjjjjjjjjjjjjjjjjjjj jj"jj#jj%jj&jj(jj)jj+jj,jj.jj/jj1jj2jj4jj5jj7jj8jj:jj;jj=jj>jj@jjAjjCjjDjjFjjGjjIjjJjjLjjMjjOjjPjjRjjSjjUjjVjjXjjYjj[jj\jj^jj_jjajjbjjdjjejjgjjhjjjjjkjjmjjnjjpjjqjjsjjtjjvjjwjjyjjzjj|jj}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkjkjkjkjkjkj kj kj kj kjkjkjkjkjkjkjkjkjkjkjkjkj!kj"kj$kj%kj'kj(kj*kj+kj-kj.kj0kj1kj3kj4kj6kj7kj9kj:kjlj?ljAljBljDljEljGljHljJljKljMljNljPljQljSljTljVljWljYljZlj\lj]lj_lj`ljbljcljeljfljhljiljkljlljnljoljqljrljtljuljwljxljzlj{lj}lj~ljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljljmjmjmjmjmjmj mj mj mjmjmjmjmjmjmjmjmjmjmjmjmj mj"mj#mj%mj&mj(mj)mj+mj,mj.mj/mj1mj2mj4mj5mj7mj8mj:mj;mj=mj>mj@mjAmjCmjDmjFmjGmjImjJmjLmjMmjOmjPmjRmjSmjUmjVmjXmjYmj[mj\mj^mj_mjamjbmjdmjemjgmjhmjjmjkmjmmjnmjpmjqmjsmjtmjvmjwmjymjzmj|mj}mjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjnjnjnjnjnjnj nj nj nj njnjnjnjnjnjnjnjnjnjnjnjnj!nj"nj$nj%nj'nj(nj*nj+nj-nj.nj0nj1nj3nj4nj6nj7nj9nj:njoj?ojAojBojDojEojGojHojJojKojMojNojPojQojSojTojVojWojYojZoj\oj]oj_oj`ojbojcojeojfojhojiojkojlojnojoojqojrojtojuojwojxojzoj{oj}oj~ojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojojpjpjpjpjpjpj pj pj pjpjpjpjpjpjpjpjpjpjpjpjpj pj"pj#pj%pj&pj(pj)pj+pj,pj.pj/pj1pj2pj4pj5pj7pj8pj:pj;pj=pj>pj@pjApjCpjDpjFpjGpjIpjJpjLpjMpjOpjPpjRpjSpjUpjVpjXpjYpj[pj\pj^pj_pjapjbpjdpjepjgpjhpjjpjkpjmpjnpjppjqpjspjtpjvpjwpjypjzpj|pj}pjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjpjqjqjqjqjqjqj qj qj qj qjqjqjqjqjqjqjqjqjqjqjqjqj!qj"qj$qj%qj'qj(qj*qj+qj-qj.qj0qj1qj3qj4qj6qj7qj9qj:qjrj?rjArjBrjDrjErjGrjHrjJrjKrjMrjNrjPrjQrjSrjTrjVrjWrjYrjZrj\rj]rj_rj`rjbrjcrjerjfrjhrjirjkrjlrjnrjorjqrjrrjtrjurjwrjxrjzrj{rj}rj~rjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjrjsjsjsjsjsjsj sj sj sjsjsjsjsjsjsjsjsjsjsjsjsj sj"sj#sj%sj&sj(sj)sj+sj,sj.sj/sj1sj2sj4sj5sj7sj8sj:sj;sj=sj>sj@sjAsjCsjDsjFsjGsjIsjJsjLsjMsjOsjPsjRsjSsjUsjVsjXsjYsj[sj\sj^sj_sjasjbsjdsjesjgsjhsjjsjksjmsjnsjpsjqsjssjtsjvsjwsjysjzsj|sj}sjsjsjsjsjsjsjsu(jsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjsjtjtjtjtjtjtj tj tj tj tjtjtjtjtjtjtjtjtjtjtjtjtj!tj"tj$tj%tj'tj(tj*tj+tj-tj.tj0tj1tj3tj4tj6tj7tj9tj:tjuj?ujAujBujDujEujGujHujJujKujMujNujPujQujSujTujVujWujYujZuj\uj]uj_uj`ujbujcujeujfujhujiujkujlujnujoujqujrujtujuujwujxujzuj{uj}uj~ujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujvjvjvjvjvjvj vj vj vjvjvjvjvjvjvjvjvjvjvjvjvj vj"vj#vj%vj&vj(vj)vj+vj,vj.vj/vj1vj2vj4vj5vj7vj8vj:vj;vj=vj>vj@vjAvjCvjDvjFvjGvjIvjJvjLvjMvjOvjPvjRvjSvjUvjVvjXvjYvj[vj\vj^vj_vjavjbvjdvjevjgvjhvjjvjkvjmvjnvjpvjqvjsvjtvjvvjwvjyvjzvj|vj}vjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjvjwjwjwjwjwjwj wj wj wj wjwjwjwjwjwjwjwjwjwjwjwjwj!wj"wj$wj%wj'wj(wj*wj+wj-wj.wj0wj1wj3wj4wj6wj7wj9wj:wjxj?xjAxjBxjDxjExjGxjHxjJxjKxjMxjNxjPxjQxjSxjTxjVxjWxjYxjZxj\xj]xj_xj`xjbxjcxjexjfxjhxjixjkxjlxjnxjoxjqxjrxjtxjuxjwxjxxjzxj{xj}xj~xjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjjjjujx}(jxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjxjyjyjyjyjyjyj yj yj yj yjyjyjyjyjyjyjyjyjyjyjyjyj!yj"yj$yj%yj'yj(yj*yj+yj-yj.yj0yj1yj3yj4yj6yj7yj9yj:yjzj?zjAzjBzjDzjEzjGzjHzjJzjKzjMzjNzjPzjQzjSzjTzjVzjWzjYzjZzj\zj]zj_zj`zjbzjczjezjfzjhzjizjkzjlzjnzjozjqzjrzjtzjuzjwzjxzjzzj{zj}zj~zjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzjzj{j{j{j{j{j{j {j {j {j{j{j{j{j{j{j{j{j{j{j{j{j {j"{j#{j%{j&{j({j){j+{j,{j.{j/{j1{j2{j4{j5{j7{j8{j:{j;{j={j>{j@{jA{jC{jD{jF{jG{jI{jJ{jL{jM{jO{jP{jR{jS{jU{jV{jX{jY{j[{j\{j^{j_{ja{jb{jd{je{jg{jh{jj{jk{jm{jn{jp{jq{js{jt{jv{jw{jy{jz{j|{j}{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j{j|j|j|j|j|j|j |j |j |j |j|j|j|j|j|j|j|j|j|j|j|j|j!|j"|j$|j%|j'|j(|j*|j+|j-|j.|j0|j1|j3|j4|j6|j7|j9|j:|j<|j=|j?|j@|jB|jC|jE|jF|jH|jI|jK|jL|jN|jO|jQ|jR|jT|jU|jW|jX|jZ|j[|j]|j^|j`|ja|jc|jd|jf|jg|ji|jj|jl|jm|jo|jp|jr|js|ju|jv|jx|jy|j{|j||j~|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jbjfjgjijjjljmjojpjrjsjuuj|}(j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j}j}j}j}j}j}j }j }j }j}j}j}j}j}j}j}j}j}j}j}j}j }j"}j#}j%}j&}j(}j)}j+}j,}j.}j/}j1}j2}j4}j5}j7}j8}j:}j;}j=}j>}j@}jA}jC}jD}jF}jG}jI}jJ}jL}jM}jO}jP}jR}jS}jU}jV}jX}jY}j[}j\}j^}j_}ja}jb}jd}je}jg}jh}jj}jk}jm}jn}jp}jq}js}jt}jv}jw}jy}jz}j|}j}}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j~j~j~j~j~j~j ~j ~j ~j ~j~j~j~j~j~j~j~j~j~j~j~j~j!~j"~j$~j%~j'~j(~j*~j+~j-~j.~j0~j1~j3~j4~j6~j7~j9~j:~j<~j=~j?~j@~jB~jC~jE~jF~jH~jI~jK~jL~jN~jO~jQ~jR~jT~jU~jW~jX~jZ~j[~j]~j^~j`~ja~jc~jd~jf~jg~ji~jj~jl~jm~jo~jp~jr~js~ju~jv~jx~jy~j{~j|~j~~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~j~jjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj€jĀjŀjǀjȀjʀjˀj̀j΀jЀjрjӀjԀjրj׀jـjڀj܀j݀j߀jjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÁjājƁjǁjɁjʁj́j́jρjЁjҁjӁjՁjցj؁jفjہj܁jށj߁jjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj‚jÂjłjƂjȂjɂj˂ĵj΂jςjтj҂jԂjՂjׂj؂jڂjۂj݂jނjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjƒjăjŃjǃjȃjʃj˃j̓j΃jЃjуjӃjԃjփj׃jكjڃj܃j݃j߃jjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÄjĄjƄjDŽjɄjʄj̄j̈́jτjЄj҄jӄjՄjքj؄jلjۄj܄jބj߄jjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj…jÅjŅjƅjȅjɅj˅j̅j΅jυjхj҅jԅjՅjׅj؅jڅjۅj݅jޅjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj†jĆjņjdžjȆjʆjˆj͆jΆjІjцjӆjԆjֆj׆jنjچj܆j݆j߆jjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÇjćjƇjLJjɇjʇj̇j͇jχjЇj҇jӇjՇjևj؇jهjۇj܇jއj߇jjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqu(jrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjˆjÈjňjƈjȈjɈjˈj̈jΈjψjшj҈jԈjՈj׈j؈jڈjۈj݈jވjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj‰jĉjʼnjljjȉjʉjˉj͉jΉjЉjщjӉjԉj։j׉jىjډj܉j݉j߉jjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÊjĊjƊjNJjɊjʊj̊j͊jϊjЊjҊjӊjՊj֊j؊jيjۊj܊jފjߊjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj‹jËjŋjƋjȋjɋjˋj̋j΋jϋjыjҋjԋjՋj׋j؋jڋjۋj݋jދjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjŒjČjŌjnjjȌjʌjˌj͌jΌjЌjьjӌjԌj֌j׌jٌjڌj܌j݌jߌjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÍjčjƍjǍjɍjʍj̍j͍jύjЍjҍjӍjՍj֍j؍jٍjۍj܍jލjߍjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjŽjÎjŎjƎjȎjɎjˎj̎jΎjώjюjҎjԎjՎj׎j؎jڎjێjݎjގjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjďjŏjǏjȏjʏjˏj͏jΏjЏjяjӏjԏj֏j׏jُjڏj܏jݏjߏjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÐjĐjƐjǐjɐjʐj̐j͐jϐjАjҐjӐjՐj֐jؐjِjېjܐjސjߐjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj‘jÑjőjƑjȑjɑjˑj̑jΑjϑjёjґjԑjՑjבjؑjڑjۑjݑjޑjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj’jĒjŒjǒjȒjʒj˒j͒jΒjВjђjӒjԒj֒jגjْjڒjܒjݒjߒjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÓjējƓjǓjɓjʓj̓j͓jϓjГjғjӓjՓj֓jؓjٓjۓjܓjޓjߓjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)u(j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj”jÔjŔjƔjȔjɔj˔j̔jΔjϔjєjҔjԔjՔjהjؔjڔj۔jݔjޔjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj•jĕjŕjǕjȕjʕj˕j͕jΕjЕjѕjӕjԕj֕jוjٕjڕjܕjݕjߕjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÖjĖjƖjǖjɖjʖj̖j͖jϖjЖjҖjӖjՖj֖jؖjٖjۖjܖjޖjߖjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}(jjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj—jėjŗjǗjȗjʗj˗j͗jΗjЗjїjӗjԗj֗jחjٗjڗjܗjݗjߗjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjØjĘjƘjǘjɘjʘj̘j͘jϘjИjҘjӘj՘j֘jؘj٘jۘjܘjޘjߘjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj™jÙjřjƙjșjəj˙j̙jΙjϙjљjҙjԙjՙjיjؙjڙjۙjݙjޙjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjšjĚjŚjǚjȚjʚj˚j͚jΚjКjњjӚjԚj֚jךjٚjښjܚjݚjߚjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÛjějƛjǛjɛjʛj̛j͛jϛjЛjқjӛj՛j֛j؛jٛjۛjܛjޛjߛjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjœjÜjŜjƜjȜjɜj˜j̜jΜjϜjќjҜjԜj՜jלj؜jڜjۜjݜjޜjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjĝjŝjǝjȝjʝj˝j͝jΝjНjѝjӝjԝj֝jםjٝjڝjܝjݝjߝjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjÞjĞjƞjǞjɞjʞj̞j͞jϞjОjҞjӞj՞j֞j؞jٞj۞jܞjޞjߞjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjŸjßjşjƟjȟjɟj˟j̟jΟjϟjџjҟjԟj՟jןj؟jڟj۟jݟjޟjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj jĠjŠjǠjȠjʠjˠj͠jΠjРjѠjӠjԠj֠jנj٠jڠjܠjݠjߠjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjájġjơjǡjɡjʡj̡j͡jϡjСjҡjӡjաj֡jءj١jۡjܡjޡjߡjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;jjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjju(jjjjuj<}(j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}(jjjjjjjjjjjjjjjjâjĢjƢjǢjɢjʢj̢j͢jϢjТjҢjӢjբj֢jآj٢jۢjܢjޢjߢjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj£jãjţjƣjȣjɣjˣj̣jΣjϣjѣjңjԣjգjףjأjڣjۣjݣjޣjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¤jĤjŤjǤjȤjʤjˤjͤjΤjФjѤjӤjԤj֤jפj٤jڤjܤjݤjߤjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjuj}(jjjjjjjjjjjjjjjjjjjjjjjj¥jåjťjƥjȥjɥj˥j̥jΥjϥjѥjҥjԥjեjץjإjڥjۥjݥjޥjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¦jĦjŦjǦjȦjʦj˦jͦjΦjЦjѦjӦjԦj֦jצj٦jڦjܦjݦjߦjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3jjuj4}(j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jaojbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj§jçjƧjǧjʧj˧jΧjϧjҧjӧj֧jקjڧjۧjާjߧjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjèjĨjǨjȨj˨j̨jϨjШjӨjԨj֨jרjڨjۨjިjߨjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj j!j$j%j(j)j,j-j0j1j3j4j7j8j;j<j?j@jCjDjGjHjKjLjNjOjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjéjĩjǩjȩj˩j̩jϩjЩjҩjөj֩jשjکj۩jީjߩjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j=j>jAjBjEjFjHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejgjhjkjljojpjsjtjwjxj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjĪjŪjȪjɪj̪jͪjЪjѪjԪjժjتj٪j۪jܪjުjߪjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujwjxj{j|jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjëjījǫjȫj˫j̫jϫjЫjӫjԫj׫jثj۫jܫj߫jjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjj j#j$j'j(j+j,j/j0j3j4j7j8j;j<j?j@jCjDjGjHjKjLjNjOjRjSjVjWjZj[j^j_jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¬jŬjƬjɬjʬjͬjάjѬjҬjլj֬j٬jڬjݬjެjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjQjRjUjVjYjZj]j^jajbjdjejhjijljmjpjqjtjujxjyj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj­jíjƭjǭjʭj˭jέjϭjҭjӭj֭j׭jڭjۭjݭjޭjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj®jŮjƮjɮjʮjͮjήjѮjҮjծj֮jٮjڮjݮjޮjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj j#j$j'j(j+j,j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¯jïjƯjǯjʯj˯jίjϯjүjӯj֯jׯjگjۯjޯj߯jjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj j!j$j%j(j)j,j-j0j1j4j5j8j9j<j=j?j@jCjDjFjGjJjKjNjOjQjRjUjVjYjZj]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj°jðjŰjưjɰjʰjͰjΰjѰjҰj"jְjٰjڰjݰjްjjjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjLjMjPjQjTjUjWjXj[j\j_j`jcjdjgjhjkjljojpjsjtjwjxj{j|jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjñjıjDZjȱj˱j̱jϱjбjӱjԱjױjرj۱jܱj߱jjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjj j#j$j'j(j+j,j/j0j3j4j7j8j;j<j?j@jCjDjGjHjKjLjOjPjSjTjWjXj[j\j_j`jcjdjgjhjkjljojpjsjtjwjxj{j|jjjjjjjjj2jjjjjjjjjjjjjjjjjjjjjjjjjjòjIJjDzjȲj˲j̲jϲjвjӲjԲjײjزj۲jܲj߲jjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjójijjdzjȳj˳j̳jϳjгjӳjԳj׳jسj۳jܳj߳jjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjj j#j$j'j(j+j,j/j0j3j4j7j8j:j;j>j?jBjCjFjGjIjJjLjMjOjPjRjSjUjVjXjYj\j]j`jajdjejhjijljmjpjqjsjtjwjxj{j|j>jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjôjĴjǴjȴj˴j̴jϴjдjӴjԴj״jشj۴jܴjߴjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj j#j$j'j(j+j,j/j0j3j4j7j8j;j<j?j@jCjDjGjHjKjLjOjPjSjTjWjXj[j\j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjĵjŵjȵjɵj̵j͵jеjѵjԵjյjصjٵjܵjݵjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjj j!j$j%j(j)j,j-j0j1j4j5j8j9j<j=j@jAjDjEjHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujxjyj|u(j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjöjĶjǶjȶj˶j̶j϶jжjҶjӶjֶj׶jڶj۶j޶j߶jjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj·jŷjƷjɷjʷjͷjηjѷjҷjշjַjٷjڷjݷj޷jjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjj j!j$j%j(j)j,j-j0j1j4j5j8j9j<j=j@jAjDjEj^jIjKjLjOjPjSjTjWjXj[j\j^j_jbjcjfjgjijjjmjnjqjrjujvjxjyj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¸jøjƸjǸjʸj˸jθjϸjҸjӸjָj׸jڸj۸j޸j߸jjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj j!j#j$j&j'j*j+j.j/j2j3j6j7j:j;jfj?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjùjĹjƹjǹjʹj˹jιjϹjҹjӹjֹj׹jڹj۹j޹j߹jjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjĺjźjȺjɺj̺jͺjкjѺjԺjպjغjٺjܺjݺjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjj j!j$j%j(j)j,j-j0j1j4j5j8j9j<j=j?j@jCjDjGjHjKjLjOjPjSjTjWjXj[j\j_j`jcjdjgjhjkjljojpjsjtjwjxj{j|jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjûjĻjǻjȻj˻j̻jϻjлjӻjԻj׻jػjۻjܻj߻jjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¼jżjƼjɼjʼjͼjμjѼjҼjռjּjټjڼjݼj޼jjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj½jŽjƽjɽjʽjͽjνjѽjҽjսjֽjٽjڽjݽj޽jjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j<j=j@jAjDjEjGjHjKjLjOjPjSjTjWjXj[j\j_j`jcjdjgjhjkjljojpjsjtjwjxj{j|jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¾jþjƾjǾjʾj˾jξjϾjҾjӾj־j׾jھj۾j޾j߾jjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>j@jAjDjEjHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejhjijljmjojpjsjtjvjwjzj{j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj¿jÿjƿjǿjʿj˿jοjϿjҿjӿjֿj׿jٿjڿjܿjݿjjjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jAjBjEjFjIjJjMjNjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujxjyj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjj j!j$j%j(j)j,j-j0j1j4j5j8j9j<j=j?j@jBjCjFjGjJjKjNjOjRjSjVjWjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjDjEjHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujxjyj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j jjjjjjjjjj j#j$j'j(j+j,j/j0j3j4j7j8j;jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j jjjjjjjj#j&j'j*j+j.j3j6j7j:j?jBjCjFjGjJjKjNjOjRjSjVjWjZj_jbjgjjjkjnjojrjsjvjwjzj{j~jjjjjjjjjjjjjjjjjjjjjjuj<}(j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]j^j`jajcjdjfjgjijjjljmjojpjrjsjujvjxjyj{j|j~jjjjjjjjuj}(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgujh}(jjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)j*j-j.j1j2j5j6j9j:j=j>jAjBjEjFjIjJjMjNjQjRjUjVjYjZj]j^jajbjejfjijjjmjnjqjrjujvjyjzj}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjj!j"j%j&j)jjjjjjjjjjjjjjjjjjjjjjjjuj*}(j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjuj}(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j!j#j$j&j'j)j*j,j-j/j0j2j3j5j6j8j9j;j<j>j?jAjBjDjEjGjHjJjKjMjNjPjQjSjTjVjWjYjZj\j]j_j`jbjcjejfjhjijkjljnjojqjrjtjujwjxjzj{j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j jjjjjjjjjjjjj j"j#j%j&j(j)j+j,j.j/j1j2j4j5j7j8j:j;j=j>j@jAjCjDjFjGjIjJjLjMjOjPjRjSjUjVjXjYj[j\j^j_jajbjdjejgjhjjjkjmjnjpjqjsjtjvjwjyjzj|j}jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j j j jjjjjjjjjjjjj!j"j$j%j'j(j*j+j-j.j0j1j3j4j6j7j9j:j<j=j?j@jBjCjEjFjHjIjKjLjNjOjQjRjTjUjWjXjZj[j]ujv}jxjzsj}(jjjjjjjjjjjjjjuj}jjsuintersphinx_named_inventory}(hji h j_uub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/example.doctree0000664000175000017500000024441314463757444017456 0ustar00twtwb>sphinx.addnodesdocument)}( rawsourcechildren](docutils.nodestarget)}(h.. _example file system:h] attributes}(ids]classes]names]dupnames]backrefs]refidexample-file-systemutagnameh lineKparenth _documenthsource"/home/tw/w/pyfuse3/rst/example.rstubh section)}(hhh](h title)}(hExample File Systemsh]h TextExample File Systems}(h h+h!hh"NhNubah}(h]h]h]h]h]uhh)h h&h!hh"h#hKubh paragraph)}(hpyfuse3 comes with several example file systems in the :file:`examples` directory of the release tarball. For completeness, these examples are also included here.h](h07pyfuse3 comes with several example file systems in the }(h h=h!hh"NhNubh literal)}(h:file:`examples`h]h0examples}(h hGh!hh"NhNubah}(h]h]fileah]h]h]rolefileuhhEh h=ubh0[ directory of the release tarball. For completeness, these examples are also included here.}(h h=h!hh"NhNubeh}(h]h]h]h]h]uhh;h"h#hKh h&h!hubh%)}(hhh](h*)}(h"Single-file, Read-only File Systemh]h0"Single-file, Read-only File System}(h heh!hh"NhNubah}(h]h]h]h]h]uhh)h hbh!hh"h#hK ubh<)}(h'(shipped as :file:`examples/lltest.py`)h](h0 (shipped as }(h hsh!hh"NhNubhF)}(h:file:`examples/lltest.py`h]h0examples/lltest.py}(h h{h!hh"NhNubah}(h]h]fileah]h]h]rolefileuhhEh hsubh0)}(h hsh!hh"NhNubeh}(h]h]h]h]h]uhh;h"h#hKh hbh!hubh literal_block)}(hX7#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello.py - Example file system for pyfuse3. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) from argparse import ArgumentParser import stat import logging import errno import pyfuse3 import trio try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) class TestFs(pyfuse3.Operations): def __init__(self): super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE+1 self.hello_data = b"hello world\n" async def getattr(self, inode, ctx=None): entry = pyfuse3.EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = (stat.S_IFDIR | 0o755) entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = (stat.S_IFREG | 0o644) entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup(self, parent_inode, name, ctx=None): if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode) async def opendir(self, inode, ctx): if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) return inode async def readdir(self, fh, start_id, token): assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply( token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode, flags, ctx): if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) return pyfuse3.FileInfo(fh=inode) async def read(self, fh, off, size): assert fh == self.hello_inode return self.hello_data[off:off+size] def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(): '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args() def main(): options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() if __name__ == '__main__': main() h]h0X7#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello.py - Example file system for pyfuse3. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) from argparse import ArgumentParser import stat import logging import errno import pyfuse3 import trio try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) class TestFs(pyfuse3.Operations): def __init__(self): super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE+1 self.hello_data = b"hello world\n" async def getattr(self, inode, ctx=None): entry = pyfuse3.EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = (stat.S_IFDIR | 0o755) entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = (stat.S_IFREG | 0o644) entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup(self, parent_inode, name, ctx=None): if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode) async def opendir(self, inode, ctx): if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) return inode async def readdir(self, fh, start_id, token): assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply( token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode, flags, ctx): if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) return pyfuse3.FileInfo(fh=inode) async def read(self, fh, off, size): assert fh == self.hello_inode return self.hello_data[off:off+size] def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(): '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args() def main(): options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() if __name__ == '__main__': main() }h hsbah}(h]h]h]h]h]source$/home/tw/w/pyfuse3/examples/hello.py xml:spacepreserveforcelanguagepythonlinenoshighlight_args} linenostartKsuhhh"h#hKh hbh!hubeh}(h]!single-file-read-only-file-systemah]h]"single-file, read-only file systemah]h]uhh$h h&h!hh"h#hK ubh%)}(hhh](h*)}(hIn-memory File Systemh]h0In-memory File System}(h hh!hh"NhNubah}(h]h]h]h]h]uhh)h hh!hh"h#hKubh<)}(h&(shipped as :file:`examples/tmpfs.py`)h](h0 (shipped as }(h hh!hh"NhNubhF)}(h:file:`examples/tmpfs.py`h]h0examples/tmpfs.py}(h hh!hh"NhNubah}(h]h]fileah]h]h]rolefileuhhEh hubh0)}(h hh!hh"NhNubeh}(h]h]h]h]h]uhh;h"h#hKh hh!hubh)}(hXCA#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' tmpfs.py - Example file system for pyfuse3. This file system stores all data in memory. Copyright © 2013 Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) import pyfuse3 import errno import stat from time import time import sqlite3 import logging from collections import defaultdict from pyfuse3 import FUSEError from argparse import ArgumentParser import trio try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger() class Operations(pyfuse3.Operations): '''An example filesystem that stores all data in memory This is a very simple implementation with terrible performance. Don't try to store significant amounts of data. Also, there are some other flaws that have not been fixed to keep the code easier to understand: * atime, mtime and ctime are not updated * generation numbers are not supported * lookup counts are not maintained ''' enable_writeback_cache = True def __init__(self): super(Operations, self).__init__() self.db = sqlite3.connect(':memory:') self.db.text_factory = str self.db.row_factory = sqlite3.Row self.cursor = self.db.cursor() self.inode_open_count = defaultdict(int) self.init_tables() def init_tables(self): '''Initialize file system tables''' self.cursor.execute(""" CREATE TABLE inodes ( id INTEGER PRIMARY KEY, uid INT NOT NULL, gid INT NOT NULL, mode INT NOT NULL, mtime_ns INT NOT NULL, atime_ns INT NOT NULL, ctime_ns INT NOT NULL, target BLOB(256) , size INT NOT NULL DEFAULT 0, rdev INT NOT NULL DEFAULT 0, data BLOB ) """) self.cursor.execute(""" CREATE TABLE contents ( rowid INTEGER PRIMARY KEY AUTOINCREMENT, name BLOB(256) NOT NULL, inode INT NOT NULL REFERENCES inodes(id), parent_inode INT NOT NULL REFERENCES inodes(id), UNIQUE (name, parent_inode) )""") # Insert root directory now_ns = int(time() * 1e9) self.cursor.execute("INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) " "VALUES (?,?,?,?,?,?,?)", (pyfuse3.ROOT_INODE, stat.S_IFDIR | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, os.getuid(), os.getgid(), now_ns, now_ns, now_ns)) self.cursor.execute("INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)", (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE)) def get_row(self, *a, **kw): self.cursor.execute(*a, **kw) try: row = next(self.cursor) except StopIteration: raise NoSuchRowError() try: next(self.cursor) except StopIteration: pass else: raise NoUniqueValueError() return row async def lookup(self, inode_p, name, ctx=None): if name == '.': inode = inode_p elif name == '..': inode = self.get_row("SELECT * FROM contents WHERE inode=?", (inode_p,))['parent_inode'] else: try: inode = self.get_row("SELECT * FROM contents WHERE name=? AND parent_inode=?", (name, inode_p))['inode'] except NoSuchRowError: raise(pyfuse3.FUSEError(errno.ENOENT)) return await self.getattr(inode, ctx) async def getattr(self, inode, ctx=None): try: row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,)) except NoSuchRowError: raise(pyfuse3.FUSEError(errno.ENOENT)) entry = pyfuse3.EntryAttributes() entry.st_ino = inode entry.generation = 0 entry.entry_timeout = 300 entry.attr_timeout = 300 entry.st_mode = row['mode'] entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?", (inode,))[0] entry.st_uid = row['uid'] entry.st_gid = row['gid'] entry.st_rdev = row['rdev'] entry.st_size = row['size'] entry.st_blksize = 512 entry.st_blocks = 1 entry.st_atime_ns = row['atime_ns'] entry.st_mtime_ns = row['mtime_ns'] entry.st_ctime_ns = row['ctime_ns'] return entry async def readlink(self, inode, ctx): return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target'] async def opendir(self, inode, ctx): return inode async def readdir(self, inode, off, token): if off == 0: off = -1 cursor2 = self.db.cursor() cursor2.execute("SELECT * FROM contents WHERE parent_inode=? " 'AND rowid > ? ORDER BY rowid', (inode, off)) for row in cursor2: pyfuse3.readdir_reply( token, row['name'], await self.getattr(row['inode']), row['rowid']) async def unlink(self, inode_p, name,ctx): entry = await self.lookup(inode_p, name) if stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.EISDIR) self._remove(inode_p, name, entry) async def rmdir(self, inode_p, name, ctx): entry = await self.lookup(inode_p, name) if not stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.ENOTDIR) self._remove(inode_p, name, entry) def _remove(self, inode_p, name, entry): if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry.st_ino,))[0] > 0: raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute("DELETE FROM contents WHERE name=? AND parent_inode=?", (name, inode_p)) if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,)) async def symlink(self, inode_p, name, target, ctx): mode = (stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH) return await self._create(inode_p, name, mode, ctx, target=target) async def rename(self, inode_p_old, name_old, inode_p_new, name_new, flags, ctx): if flags != 0: raise FUSEError(errno.EINVAL) entry_old = await self.lookup(inode_p_old, name_old) try: entry_new = await self.lookup(inode_p_new, name_new) except pyfuse3.FUSEError as exc: if exc.errno != errno.ENOENT: raise target_exists = False else: target_exists = True if target_exists: self._replace(inode_p_old, name_old, inode_p_new, name_new, entry_old, entry_new) else: self.cursor.execute("UPDATE contents SET name=?, parent_inode=? WHERE name=? " "AND parent_inode=?", (name_new, inode_p_new, name_old, inode_p_old)) def _replace(self, inode_p_old, name_old, inode_p_new, name_new, entry_old, entry_new): if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry_new.st_ino,))[0] > 0: raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute("UPDATE contents SET inode=? WHERE name=? AND parent_inode=?", (entry_old.st_ino, name_new, inode_p_new)) self.db.execute('DELETE FROM contents WHERE name=? AND parent_inode=?', (name_old, inode_p_old)) if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,)) async def link(self, inode, new_inode_p, new_name, ctx): entry_p = await self.getattr(new_inode_p) if entry_p.st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', new_name, new_inode_p) raise FUSEError(errno.EINVAL) self.cursor.execute("INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)", (new_name, inode, new_inode_p)) return await self.getattr(inode) async def setattr(self, inode, attr, fields, fh, ctx): if fields.update_size: data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0] if data is None: data = b'' if len(data) < attr.st_size: data = data + b'\0' * (attr.st_size - len(data)) else: data = data[:attr.st_size] self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), attr.st_size, inode)) if fields.update_mode: self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?', (attr.st_mode, inode)) if fields.update_uid: self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?', (attr.st_uid, inode)) if fields.update_gid: self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?', (attr.st_gid, inode)) if fields.update_atime: self.cursor.execute('UPDATE inodes SET atime_ns=? WHERE id=?', (attr.st_atime_ns, inode)) if fields.update_mtime: self.cursor.execute('UPDATE inodes SET mtime_ns=? WHERE id=?', (attr.st_mtime_ns, inode)) if fields.update_ctime: self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?', (attr.st_ctime_ns, inode)) else: self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?', (int(time()*1e9), inode)) return await self.getattr(inode) async def mknod(self, inode_p, name, mode, rdev, ctx): return await self._create(inode_p, name, mode, ctx, rdev=rdev) async def mkdir(self, inode_p, name, mode, ctx): return await self._create(inode_p, name, mode, ctx) async def statfs(self, ctx): stat_ = pyfuse3.StatvfsData() stat_.f_bsize = 512 stat_.f_frsize = 512 size = self.get_row('SELECT SUM(size) FROM inodes')[0] stat_.f_blocks = size // stat_.f_frsize stat_.f_bfree = max(size // stat_.f_frsize, 1024) stat_.f_bavail = stat_.f_bfree inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0] stat_.f_files = inodes stat_.f_ffree = max(inodes , 100) stat_.f_favail = stat_.f_ffree return stat_ async def open(self, inode, flags, ctx): # Yeah, unused arguments #pylint: disable=W0613 self.inode_open_count[inode] += 1 # Use inodes as a file handles return pyfuse3.FileInfo(fh=inode) async def access(self, inode, mode, ctx): # Yeah, could be a function and has unused arguments #pylint: disable=R0201,W0613 return True async def create(self, inode_parent, name, mode, flags, ctx): #pylint: disable=W0612 entry = await self._create(inode_parent, name, mode, ctx) self.inode_open_count[entry.st_ino] += 1 return (pyfuse3.FileInfo(fh=entry.st_ino), entry) async def _create(self, inode_p, name, mode, ctx, rdev=0, target=None): if (await self.getattr(inode_p)).st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', name, inode_p) raise FUSEError(errno.EINVAL) now_ns = int(time() * 1e9) self.cursor.execute('INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, ' 'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)', (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev)) inode = self.cursor.lastrowid self.db.execute("INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)", (name, inode, inode_p)) return await self.getattr(inode) async def read(self, fh, offset, length): data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' return data[offset:offset+length] async def write(self, fh, offset, buf): data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' data = data[:offset] + buf + data[offset+len(buf):] self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), len(data), fh)) return len(buf) async def release(self, fh): self.inode_open_count[fh] -= 1 if self.inode_open_count[fh] == 0: del self.inode_open_count[fh] if (await self.getattr(fh)).st_nlink == 0: self.cursor.execute("DELETE FROM inodes WHERE id=?", (fh,)) class NoUniqueValueError(Exception): def __str__(self): return 'Query generated more than 1 result row' class NoSuchRowError(Exception): def __str__(self): return 'Query produced 0 result rows' def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(): '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args() if __name__ == '__main__': options = parse_args() init_logging(options.debug) operations = Operations() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=tmpfs') fuse_options.discard('default_permissions') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() h]h0XCA#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' tmpfs.py - Example file system for pyfuse3. This file system stores all data in memory. Copyright © 2013 Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) import pyfuse3 import errno import stat from time import time import sqlite3 import logging from collections import defaultdict from pyfuse3 import FUSEError from argparse import ArgumentParser import trio try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger() class Operations(pyfuse3.Operations): '''An example filesystem that stores all data in memory This is a very simple implementation with terrible performance. Don't try to store significant amounts of data. Also, there are some other flaws that have not been fixed to keep the code easier to understand: * atime, mtime and ctime are not updated * generation numbers are not supported * lookup counts are not maintained ''' enable_writeback_cache = True def __init__(self): super(Operations, self).__init__() self.db = sqlite3.connect(':memory:') self.db.text_factory = str self.db.row_factory = sqlite3.Row self.cursor = self.db.cursor() self.inode_open_count = defaultdict(int) self.init_tables() def init_tables(self): '''Initialize file system tables''' self.cursor.execute(""" CREATE TABLE inodes ( id INTEGER PRIMARY KEY, uid INT NOT NULL, gid INT NOT NULL, mode INT NOT NULL, mtime_ns INT NOT NULL, atime_ns INT NOT NULL, ctime_ns INT NOT NULL, target BLOB(256) , size INT NOT NULL DEFAULT 0, rdev INT NOT NULL DEFAULT 0, data BLOB ) """) self.cursor.execute(""" CREATE TABLE contents ( rowid INTEGER PRIMARY KEY AUTOINCREMENT, name BLOB(256) NOT NULL, inode INT NOT NULL REFERENCES inodes(id), parent_inode INT NOT NULL REFERENCES inodes(id), UNIQUE (name, parent_inode) )""") # Insert root directory now_ns = int(time() * 1e9) self.cursor.execute("INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) " "VALUES (?,?,?,?,?,?,?)", (pyfuse3.ROOT_INODE, stat.S_IFDIR | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, os.getuid(), os.getgid(), now_ns, now_ns, now_ns)) self.cursor.execute("INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)", (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE)) def get_row(self, *a, **kw): self.cursor.execute(*a, **kw) try: row = next(self.cursor) except StopIteration: raise NoSuchRowError() try: next(self.cursor) except StopIteration: pass else: raise NoUniqueValueError() return row async def lookup(self, inode_p, name, ctx=None): if name == '.': inode = inode_p elif name == '..': inode = self.get_row("SELECT * FROM contents WHERE inode=?", (inode_p,))['parent_inode'] else: try: inode = self.get_row("SELECT * FROM contents WHERE name=? AND parent_inode=?", (name, inode_p))['inode'] except NoSuchRowError: raise(pyfuse3.FUSEError(errno.ENOENT)) return await self.getattr(inode, ctx) async def getattr(self, inode, ctx=None): try: row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,)) except NoSuchRowError: raise(pyfuse3.FUSEError(errno.ENOENT)) entry = pyfuse3.EntryAttributes() entry.st_ino = inode entry.generation = 0 entry.entry_timeout = 300 entry.attr_timeout = 300 entry.st_mode = row['mode'] entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?", (inode,))[0] entry.st_uid = row['uid'] entry.st_gid = row['gid'] entry.st_rdev = row['rdev'] entry.st_size = row['size'] entry.st_blksize = 512 entry.st_blocks = 1 entry.st_atime_ns = row['atime_ns'] entry.st_mtime_ns = row['mtime_ns'] entry.st_ctime_ns = row['ctime_ns'] return entry async def readlink(self, inode, ctx): return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target'] async def opendir(self, inode, ctx): return inode async def readdir(self, inode, off, token): if off == 0: off = -1 cursor2 = self.db.cursor() cursor2.execute("SELECT * FROM contents WHERE parent_inode=? " 'AND rowid > ? ORDER BY rowid', (inode, off)) for row in cursor2: pyfuse3.readdir_reply( token, row['name'], await self.getattr(row['inode']), row['rowid']) async def unlink(self, inode_p, name,ctx): entry = await self.lookup(inode_p, name) if stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.EISDIR) self._remove(inode_p, name, entry) async def rmdir(self, inode_p, name, ctx): entry = await self.lookup(inode_p, name) if not stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.ENOTDIR) self._remove(inode_p, name, entry) def _remove(self, inode_p, name, entry): if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry.st_ino,))[0] > 0: raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute("DELETE FROM contents WHERE name=? AND parent_inode=?", (name, inode_p)) if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,)) async def symlink(self, inode_p, name, target, ctx): mode = (stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH) return await self._create(inode_p, name, mode, ctx, target=target) async def rename(self, inode_p_old, name_old, inode_p_new, name_new, flags, ctx): if flags != 0: raise FUSEError(errno.EINVAL) entry_old = await self.lookup(inode_p_old, name_old) try: entry_new = await self.lookup(inode_p_new, name_new) except pyfuse3.FUSEError as exc: if exc.errno != errno.ENOENT: raise target_exists = False else: target_exists = True if target_exists: self._replace(inode_p_old, name_old, inode_p_new, name_new, entry_old, entry_new) else: self.cursor.execute("UPDATE contents SET name=?, parent_inode=? WHERE name=? " "AND parent_inode=?", (name_new, inode_p_new, name_old, inode_p_old)) def _replace(self, inode_p_old, name_old, inode_p_new, name_new, entry_old, entry_new): if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry_new.st_ino,))[0] > 0: raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute("UPDATE contents SET inode=? WHERE name=? AND parent_inode=?", (entry_old.st_ino, name_new, inode_p_new)) self.db.execute('DELETE FROM contents WHERE name=? AND parent_inode=?', (name_old, inode_p_old)) if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,)) async def link(self, inode, new_inode_p, new_name, ctx): entry_p = await self.getattr(new_inode_p) if entry_p.st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', new_name, new_inode_p) raise FUSEError(errno.EINVAL) self.cursor.execute("INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)", (new_name, inode, new_inode_p)) return await self.getattr(inode) async def setattr(self, inode, attr, fields, fh, ctx): if fields.update_size: data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0] if data is None: data = b'' if len(data) < attr.st_size: data = data + b'\0' * (attr.st_size - len(data)) else: data = data[:attr.st_size] self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), attr.st_size, inode)) if fields.update_mode: self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?', (attr.st_mode, inode)) if fields.update_uid: self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?', (attr.st_uid, inode)) if fields.update_gid: self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?', (attr.st_gid, inode)) if fields.update_atime: self.cursor.execute('UPDATE inodes SET atime_ns=? WHERE id=?', (attr.st_atime_ns, inode)) if fields.update_mtime: self.cursor.execute('UPDATE inodes SET mtime_ns=? WHERE id=?', (attr.st_mtime_ns, inode)) if fields.update_ctime: self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?', (attr.st_ctime_ns, inode)) else: self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?', (int(time()*1e9), inode)) return await self.getattr(inode) async def mknod(self, inode_p, name, mode, rdev, ctx): return await self._create(inode_p, name, mode, ctx, rdev=rdev) async def mkdir(self, inode_p, name, mode, ctx): return await self._create(inode_p, name, mode, ctx) async def statfs(self, ctx): stat_ = pyfuse3.StatvfsData() stat_.f_bsize = 512 stat_.f_frsize = 512 size = self.get_row('SELECT SUM(size) FROM inodes')[0] stat_.f_blocks = size // stat_.f_frsize stat_.f_bfree = max(size // stat_.f_frsize, 1024) stat_.f_bavail = stat_.f_bfree inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0] stat_.f_files = inodes stat_.f_ffree = max(inodes , 100) stat_.f_favail = stat_.f_ffree return stat_ async def open(self, inode, flags, ctx): # Yeah, unused arguments #pylint: disable=W0613 self.inode_open_count[inode] += 1 # Use inodes as a file handles return pyfuse3.FileInfo(fh=inode) async def access(self, inode, mode, ctx): # Yeah, could be a function and has unused arguments #pylint: disable=R0201,W0613 return True async def create(self, inode_parent, name, mode, flags, ctx): #pylint: disable=W0612 entry = await self._create(inode_parent, name, mode, ctx) self.inode_open_count[entry.st_ino] += 1 return (pyfuse3.FileInfo(fh=entry.st_ino), entry) async def _create(self, inode_p, name, mode, ctx, rdev=0, target=None): if (await self.getattr(inode_p)).st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', name, inode_p) raise FUSEError(errno.EINVAL) now_ns = int(time() * 1e9) self.cursor.execute('INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, ' 'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)', (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev)) inode = self.cursor.lastrowid self.db.execute("INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)", (name, inode, inode_p)) return await self.getattr(inode) async def read(self, fh, offset, length): data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' return data[offset:offset+length] async def write(self, fh, offset, buf): data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' data = data[:offset] + buf + data[offset+len(buf):] self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), len(data), fh)) return len(buf) async def release(self, fh): self.inode_open_count[fh] -= 1 if self.inode_open_count[fh] == 0: del self.inode_open_count[fh] if (await self.getattr(fh)).st_nlink == 0: self.cursor.execute("DELETE FROM inodes WHERE id=?", (fh,)) class NoUniqueValueError(Exception): def __str__(self): return 'Query generated more than 1 result row' class NoSuchRowError(Exception): def __str__(self): return 'Query produced 0 result rows' def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(): '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args() if __name__ == '__main__': options = parse_args() init_logging(options.debug) operations = Operations() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=tmpfs') fuse_options.discard('default_permissions') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() }h hsbah}(h]h]h]h]h]source$/home/tw/w/pyfuse3/examples/tmpfs.pyhhhhpythonhh}hKsuhhh"h#hKh hh!hubeh}(h]in-memory-file-systemah]h]in-memory file systemah]h]uhh$h h&h!hh"h#hKubh%)}(hhh](h*)}(h!Passthrough / Overlay File Systemh]h0!Passthrough / Overlay File System}(h j h!hh"NhNubah}(h]h]h]h]h]uhh)h jh!hh"h#hKubh<)}(h.(shipped as :file:`examples/passthroughfs.py`)h](h0 (shipped as }(h jh!hh"NhNubhF)}(h!:file:`examples/passthroughfs.py`h]h0examples/passthroughfs.py}(h j h!hh"NhNubah}(h]h]fileah]h]h]rolefileuhhEh jubh0)}(h jh!hh"NhNubeh}(h]h]h]h]h]uhh;h"h#hK!h jh!hubh)}(hXJC#!/usr/bin/env python3 ''' passthroughfs.py - Example file system for pyfuse3 This file system mirrors the contents of a specified directory tree. Caveats: * Inode generation numbers are not passed through but set to zero. * Block size (st_blksize) and number of allocated blocks (st_blocks) are not passed through. * Performance for large directories is not good, because the directory is always read completely. * There may be a way to break-out of the directory tree. * The readdir implementation is not fully POSIX compliant. If a directory contains hardlinks and is modified during a readdir call, readdir() may return some of the hardlinked files twice or omit them completely. * If you delete or rename files in the underlying file system, the passthrough file system will get confused. Copyright © Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) import pyfuse3 from argparse import ArgumentParser import errno import logging import stat as stat_m from pyfuse3 import FUSEError from os import fsencode, fsdecode from collections import defaultdict import trio import faulthandler faulthandler.enable() log = logging.getLogger(__name__) class Operations(pyfuse3.Operations): enable_writeback_cache = True def __init__(self, source): super().__init__() self._inode_path_map = { pyfuse3.ROOT_INODE: source } self._lookup_cnt = defaultdict(lambda : 0) self._fd_inode_map = dict() self._inode_fd_map = dict() self._fd_open_count = dict() def _inode_to_path(self, inode): try: val = self._inode_path_map[inode] except KeyError: raise FUSEError(errno.ENOENT) if isinstance(val, set): # In case of hardlinks, pick any path val = next(iter(val)) return val def _add_path(self, inode, path): log.debug('_add_path for %d, %s', inode, path) self._lookup_cnt[inode] += 1 # With hardlinks, one inode may map to multiple paths. if inode not in self._inode_path_map: self._inode_path_map[inode] = path return val = self._inode_path_map[inode] if isinstance(val, set): val.add(path) elif val != path: self._inode_path_map[inode] = { path, val } async def forget(self, inode_list): for (inode, nlookup) in inode_list: if self._lookup_cnt[inode] > nlookup: self._lookup_cnt[inode] -= nlookup continue log.debug('forgetting about inode %d', inode) assert inode not in self._inode_fd_map del self._lookup_cnt[inode] try: del self._inode_path_map[inode] except KeyError: # may have been deleted pass async def lookup(self, inode_p, name, ctx=None): name = fsdecode(name) log.debug('lookup for %s in %d', name, inode_p) path = os.path.join(self._inode_to_path(inode_p), name) attr = self._getattr(path=path) if name != '.' and name != '..': self._add_path(attr.st_ino, path) return attr async def getattr(self, inode, ctx=None): if inode in self._inode_fd_map: return self._getattr(fd=self._inode_fd_map[inode]) else: return self._getattr(path=self._inode_to_path(inode)) def _getattr(self, path=None, fd=None): assert fd is None or path is None assert not(fd is None and path is None) try: if fd is None: stat = os.lstat(path) else: stat = os.fstat(fd) except OSError as exc: raise FUSEError(exc.errno) entry = pyfuse3.EntryAttributes() for attr in ('st_ino', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns'): setattr(entry, attr, getattr(stat, attr)) entry.generation = 0 entry.entry_timeout = 0 entry.attr_timeout = 0 entry.st_blksize = 512 entry.st_blocks = ((entry.st_size+entry.st_blksize-1) // entry.st_blksize) return entry async def readlink(self, inode, ctx): path = self._inode_to_path(inode) try: target = os.readlink(path) except OSError as exc: raise FUSEError(exc.errno) return fsencode(target) async def opendir(self, inode, ctx): return inode async def readdir(self, inode, off, token): path = self._inode_to_path(inode) log.debug('reading %s', path) entries = [] for name in os.listdir(path): if name == '.' or name == '..': continue attr = self._getattr(path=os.path.join(path, name)) entries.append((attr.st_ino, name, attr)) log.debug('read %d entries, starting at %d', len(entries), off) # This is not fully posix compatible. If there are hardlinks # (two names with the same inode), we don't have a unique # offset to start in between them. Note that we cannot simply # count entries, because then we would skip over entries # (or return them more than once) if the number of directory # entries changes between two calls to readdir(). for (ino, name, attr) in sorted(entries): if ino <= off: continue if not pyfuse3.readdir_reply( token, fsencode(name), attr, ino): break self._add_path(attr.st_ino, os.path.join(path, name)) async def unlink(self, inode_p, name, ctx): name = fsdecode(name) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: inode = os.lstat(path).st_ino os.unlink(path) except OSError as exc: raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(inode, path) async def rmdir(self, inode_p, name, ctx): name = fsdecode(name) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: inode = os.lstat(path).st_ino os.rmdir(path) except OSError as exc: raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(inode, path) def _forget_path(self, inode, path): log.debug('forget %s for %d', path, inode) val = self._inode_path_map[inode] if isinstance(val, set): val.remove(path) if len(val) == 1: self._inode_path_map[inode] = next(iter(val)) else: del self._inode_path_map[inode] async def symlink(self, inode_p, name, target, ctx): name = fsdecode(name) target = fsdecode(target) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: os.symlink(target, path) os.chown(path, ctx.uid, ctx.gid, follow_symlinks=False) except OSError as exc: raise FUSEError(exc.errno) stat = os.lstat(path) self._add_path(stat.st_ino, path) return await self.getattr(stat.st_ino) async def rename(self, inode_p_old, name_old, inode_p_new, name_new, flags, ctx): if flags != 0: raise FUSEError(errno.EINVAL) name_old = fsdecode(name_old) name_new = fsdecode(name_new) parent_old = self._inode_to_path(inode_p_old) parent_new = self._inode_to_path(inode_p_new) path_old = os.path.join(parent_old, name_old) path_new = os.path.join(parent_new, name_new) try: os.rename(path_old, path_new) inode = os.lstat(path_new).st_ino except OSError as exc: raise FUSEError(exc.errno) if inode not in self._lookup_cnt: return val = self._inode_path_map[inode] if isinstance(val, set): assert len(val) > 1 val.add(path_new) val.remove(path_old) else: assert val == path_old self._inode_path_map[inode] = path_new async def link(self, inode, new_inode_p, new_name, ctx): new_name = fsdecode(new_name) parent = self._inode_to_path(new_inode_p) path = os.path.join(parent, new_name) try: os.link(self._inode_to_path(inode), path, follow_symlinks=False) except OSError as exc: raise FUSEError(exc.errno) self._add_path(inode, path) return await self.getattr(inode) async def setattr(self, inode, attr, fields, fh, ctx): # We use the f* functions if possible so that we can handle # a setattr() call for an inode without associated directory # handle. if fh is None: path_or_fh = self._inode_to_path(inode) truncate = os.truncate chmod = os.chmod chown = os.chown stat = os.lstat else: path_or_fh = fh truncate = os.ftruncate chmod = os.fchmod chown = os.fchown stat = os.fstat try: if fields.update_size: truncate(path_or_fh, attr.st_size) if fields.update_mode: # Under Linux, chmod always resolves symlinks so we should # actually never get a setattr() request for a symbolic # link. assert not stat_m.S_ISLNK(attr.st_mode) chmod(path_or_fh, stat_m.S_IMODE(attr.st_mode)) if fields.update_uid: chown(path_or_fh, attr.st_uid, -1, follow_symlinks=False) if fields.update_gid: chown(path_or_fh, -1, attr.st_gid, follow_symlinks=False) if fields.update_atime and fields.update_mtime: if fh is None: os.utime(path_or_fh, None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns)) else: os.utime(path_or_fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) elif fields.update_atime or fields.update_mtime: # We can only set both values, so we first need to retrieve the # one that we shouldn't be changing. oldstat = stat(path_or_fh) if not fields.update_atime: attr.st_atime_ns = oldstat.st_atime_ns else: attr.st_mtime_ns = oldstat.st_mtime_ns if fh is None: os.utime(path_or_fh, None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns)) else: os.utime(path_or_fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) except OSError as exc: raise FUSEError(exc.errno) return await self.getattr(inode) async def mknod(self, inode_p, name, mode, rdev, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: os.mknod(path, mode=(mode & ~ctx.umask), device=rdev) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def mkdir(self, inode_p, name, mode, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: os.mkdir(path, mode=(mode & ~ctx.umask)) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def statfs(self, ctx): root = self._inode_path_map[pyfuse3.ROOT_INODE] stat_ = pyfuse3.StatvfsData() try: statfs = os.statvfs(root) except OSError as exc: raise FUSEError(exc.errno) for attr in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail'): setattr(stat_, attr, getattr(statfs, attr)) stat_.f_namemax = statfs.f_namemax - (len(root)+1) return stat_ async def open(self, inode, flags, ctx): if inode in self._inode_fd_map: fd = self._inode_fd_map[inode] self._fd_open_count[fd] += 1 return pyfuse3.FileInfo(fh=fd) assert flags & os.O_CREAT == 0 try: fd = os.open(self._inode_to_path(inode), flags) except OSError as exc: raise FUSEError(exc.errno) self._inode_fd_map[inode] = fd self._fd_inode_map[fd] = inode self._fd_open_count[fd] = 1 return pyfuse3.FileInfo(fh=fd) async def create(self, inode_p, name, mode, flags, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(fd=fd) self._add_path(attr.st_ino, path) self._inode_fd_map[attr.st_ino] = fd self._fd_inode_map[fd] = attr.st_ino self._fd_open_count[fd] = 1 return (pyfuse3.FileInfo(fh=fd), attr) async def read(self, fd, offset, length): os.lseek(fd, offset, os.SEEK_SET) return os.read(fd, length) async def write(self, fd, offset, buf): os.lseek(fd, offset, os.SEEK_SET) return os.write(fd, buf) async def release(self, fd): if self._fd_open_count[fd] > 1: self._fd_open_count[fd] -= 1 return del self._fd_open_count[fd] inode = self._fd_inode_map[fd] del self._inode_fd_map[inode] del self._fd_inode_map[fd] try: os.close(fd) except OSError as exc: raise FUSEError(exc.errno) def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(args): '''Parse command line''' parser = ArgumentParser() parser.add_argument('source', type=str, help='Directory tree to mirror') parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args(args) def main(): options = parse_args(sys.argv[1:]) init_logging(options.debug) operations = Operations(options.source) log.debug('Mounting...') fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=passthroughfs') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: log.debug('Entering main loop..') trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise log.debug('Unmounting..') pyfuse3.close() if __name__ == '__main__': main() h]h0XJC#!/usr/bin/env python3 ''' passthroughfs.py - Example file system for pyfuse3 This file system mirrors the contents of a specified directory tree. Caveats: * Inode generation numbers are not passed through but set to zero. * Block size (st_blksize) and number of allocated blocks (st_blocks) are not passed through. * Performance for large directories is not good, because the directory is always read completely. * There may be a way to break-out of the directory tree. * The readdir implementation is not fully POSIX compliant. If a directory contains hardlinks and is modified during a readdir call, readdir() may return some of the hardlinked files twice or omit them completely. * If you delete or rename files in the underlying file system, the passthrough file system will get confused. Copyright © Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) import pyfuse3 from argparse import ArgumentParser import errno import logging import stat as stat_m from pyfuse3 import FUSEError from os import fsencode, fsdecode from collections import defaultdict import trio import faulthandler faulthandler.enable() log = logging.getLogger(__name__) class Operations(pyfuse3.Operations): enable_writeback_cache = True def __init__(self, source): super().__init__() self._inode_path_map = { pyfuse3.ROOT_INODE: source } self._lookup_cnt = defaultdict(lambda : 0) self._fd_inode_map = dict() self._inode_fd_map = dict() self._fd_open_count = dict() def _inode_to_path(self, inode): try: val = self._inode_path_map[inode] except KeyError: raise FUSEError(errno.ENOENT) if isinstance(val, set): # In case of hardlinks, pick any path val = next(iter(val)) return val def _add_path(self, inode, path): log.debug('_add_path for %d, %s', inode, path) self._lookup_cnt[inode] += 1 # With hardlinks, one inode may map to multiple paths. if inode not in self._inode_path_map: self._inode_path_map[inode] = path return val = self._inode_path_map[inode] if isinstance(val, set): val.add(path) elif val != path: self._inode_path_map[inode] = { path, val } async def forget(self, inode_list): for (inode, nlookup) in inode_list: if self._lookup_cnt[inode] > nlookup: self._lookup_cnt[inode] -= nlookup continue log.debug('forgetting about inode %d', inode) assert inode not in self._inode_fd_map del self._lookup_cnt[inode] try: del self._inode_path_map[inode] except KeyError: # may have been deleted pass async def lookup(self, inode_p, name, ctx=None): name = fsdecode(name) log.debug('lookup for %s in %d', name, inode_p) path = os.path.join(self._inode_to_path(inode_p), name) attr = self._getattr(path=path) if name != '.' and name != '..': self._add_path(attr.st_ino, path) return attr async def getattr(self, inode, ctx=None): if inode in self._inode_fd_map: return self._getattr(fd=self._inode_fd_map[inode]) else: return self._getattr(path=self._inode_to_path(inode)) def _getattr(self, path=None, fd=None): assert fd is None or path is None assert not(fd is None and path is None) try: if fd is None: stat = os.lstat(path) else: stat = os.fstat(fd) except OSError as exc: raise FUSEError(exc.errno) entry = pyfuse3.EntryAttributes() for attr in ('st_ino', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns'): setattr(entry, attr, getattr(stat, attr)) entry.generation = 0 entry.entry_timeout = 0 entry.attr_timeout = 0 entry.st_blksize = 512 entry.st_blocks = ((entry.st_size+entry.st_blksize-1) // entry.st_blksize) return entry async def readlink(self, inode, ctx): path = self._inode_to_path(inode) try: target = os.readlink(path) except OSError as exc: raise FUSEError(exc.errno) return fsencode(target) async def opendir(self, inode, ctx): return inode async def readdir(self, inode, off, token): path = self._inode_to_path(inode) log.debug('reading %s', path) entries = [] for name in os.listdir(path): if name == '.' or name == '..': continue attr = self._getattr(path=os.path.join(path, name)) entries.append((attr.st_ino, name, attr)) log.debug('read %d entries, starting at %d', len(entries), off) # This is not fully posix compatible. If there are hardlinks # (two names with the same inode), we don't have a unique # offset to start in between them. Note that we cannot simply # count entries, because then we would skip over entries # (or return them more than once) if the number of directory # entries changes between two calls to readdir(). for (ino, name, attr) in sorted(entries): if ino <= off: continue if not pyfuse3.readdir_reply( token, fsencode(name), attr, ino): break self._add_path(attr.st_ino, os.path.join(path, name)) async def unlink(self, inode_p, name, ctx): name = fsdecode(name) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: inode = os.lstat(path).st_ino os.unlink(path) except OSError as exc: raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(inode, path) async def rmdir(self, inode_p, name, ctx): name = fsdecode(name) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: inode = os.lstat(path).st_ino os.rmdir(path) except OSError as exc: raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(inode, path) def _forget_path(self, inode, path): log.debug('forget %s for %d', path, inode) val = self._inode_path_map[inode] if isinstance(val, set): val.remove(path) if len(val) == 1: self._inode_path_map[inode] = next(iter(val)) else: del self._inode_path_map[inode] async def symlink(self, inode_p, name, target, ctx): name = fsdecode(name) target = fsdecode(target) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: os.symlink(target, path) os.chown(path, ctx.uid, ctx.gid, follow_symlinks=False) except OSError as exc: raise FUSEError(exc.errno) stat = os.lstat(path) self._add_path(stat.st_ino, path) return await self.getattr(stat.st_ino) async def rename(self, inode_p_old, name_old, inode_p_new, name_new, flags, ctx): if flags != 0: raise FUSEError(errno.EINVAL) name_old = fsdecode(name_old) name_new = fsdecode(name_new) parent_old = self._inode_to_path(inode_p_old) parent_new = self._inode_to_path(inode_p_new) path_old = os.path.join(parent_old, name_old) path_new = os.path.join(parent_new, name_new) try: os.rename(path_old, path_new) inode = os.lstat(path_new).st_ino except OSError as exc: raise FUSEError(exc.errno) if inode not in self._lookup_cnt: return val = self._inode_path_map[inode] if isinstance(val, set): assert len(val) > 1 val.add(path_new) val.remove(path_old) else: assert val == path_old self._inode_path_map[inode] = path_new async def link(self, inode, new_inode_p, new_name, ctx): new_name = fsdecode(new_name) parent = self._inode_to_path(new_inode_p) path = os.path.join(parent, new_name) try: os.link(self._inode_to_path(inode), path, follow_symlinks=False) except OSError as exc: raise FUSEError(exc.errno) self._add_path(inode, path) return await self.getattr(inode) async def setattr(self, inode, attr, fields, fh, ctx): # We use the f* functions if possible so that we can handle # a setattr() call for an inode without associated directory # handle. if fh is None: path_or_fh = self._inode_to_path(inode) truncate = os.truncate chmod = os.chmod chown = os.chown stat = os.lstat else: path_or_fh = fh truncate = os.ftruncate chmod = os.fchmod chown = os.fchown stat = os.fstat try: if fields.update_size: truncate(path_or_fh, attr.st_size) if fields.update_mode: # Under Linux, chmod always resolves symlinks so we should # actually never get a setattr() request for a symbolic # link. assert not stat_m.S_ISLNK(attr.st_mode) chmod(path_or_fh, stat_m.S_IMODE(attr.st_mode)) if fields.update_uid: chown(path_or_fh, attr.st_uid, -1, follow_symlinks=False) if fields.update_gid: chown(path_or_fh, -1, attr.st_gid, follow_symlinks=False) if fields.update_atime and fields.update_mtime: if fh is None: os.utime(path_or_fh, None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns)) else: os.utime(path_or_fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) elif fields.update_atime or fields.update_mtime: # We can only set both values, so we first need to retrieve the # one that we shouldn't be changing. oldstat = stat(path_or_fh) if not fields.update_atime: attr.st_atime_ns = oldstat.st_atime_ns else: attr.st_mtime_ns = oldstat.st_mtime_ns if fh is None: os.utime(path_or_fh, None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns)) else: os.utime(path_or_fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) except OSError as exc: raise FUSEError(exc.errno) return await self.getattr(inode) async def mknod(self, inode_p, name, mode, rdev, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: os.mknod(path, mode=(mode & ~ctx.umask), device=rdev) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def mkdir(self, inode_p, name, mode, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: os.mkdir(path, mode=(mode & ~ctx.umask)) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def statfs(self, ctx): root = self._inode_path_map[pyfuse3.ROOT_INODE] stat_ = pyfuse3.StatvfsData() try: statfs = os.statvfs(root) except OSError as exc: raise FUSEError(exc.errno) for attr in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail'): setattr(stat_, attr, getattr(statfs, attr)) stat_.f_namemax = statfs.f_namemax - (len(root)+1) return stat_ async def open(self, inode, flags, ctx): if inode in self._inode_fd_map: fd = self._inode_fd_map[inode] self._fd_open_count[fd] += 1 return pyfuse3.FileInfo(fh=fd) assert flags & os.O_CREAT == 0 try: fd = os.open(self._inode_to_path(inode), flags) except OSError as exc: raise FUSEError(exc.errno) self._inode_fd_map[inode] = fd self._fd_inode_map[fd] = inode self._fd_open_count[fd] = 1 return pyfuse3.FileInfo(fh=fd) async def create(self, inode_p, name, mode, flags, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(fd=fd) self._add_path(attr.st_ino, path) self._inode_fd_map[attr.st_ino] = fd self._fd_inode_map[fd] = attr.st_ino self._fd_open_count[fd] = 1 return (pyfuse3.FileInfo(fh=fd), attr) async def read(self, fd, offset, length): os.lseek(fd, offset, os.SEEK_SET) return os.read(fd, length) async def write(self, fd, offset, buf): os.lseek(fd, offset, os.SEEK_SET) return os.write(fd, buf) async def release(self, fd): if self._fd_open_count[fd] > 1: self._fd_open_count[fd] -= 1 return del self._fd_open_count[fd] inode = self._fd_inode_map[fd] del self._inode_fd_map[inode] del self._fd_inode_map[fd] try: os.close(fd) except OSError as exc: raise FUSEError(exc.errno) def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(args): '''Parse command line''' parser = ArgumentParser() parser.add_argument('source', type=str, help='Directory tree to mirror') parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args(args) def main(): options = parse_args(sys.argv[1:]) init_logging(options.debug) operations = Operations(options.source) log.debug('Mounting...') fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=passthroughfs') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: log.debug('Entering main loop..') trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise log.debug('Unmounting..') pyfuse3.close() if __name__ == '__main__': main() }h j;sbah}(h]h]h]h]h]source,/home/tw/w/pyfuse3/examples/passthroughfs.pyhhhhpythonhh}hKsuhhh"h#hK#h jh!hubeh}(h]passthrough-overlay-file-systemah]h]!passthrough / overlay file systemah]h]uhh$h h&h!hh"h#hKubeh}(h](example-file-systemsheh]h](example file systemsexample file systemeh]h]uhh$h hh!hh"h#hKexpect_referenced_by_name}j[h sexpect_referenced_by_id}hh subeh}(h]h]h]h]h]sourceh#uhhcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(h)N generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh# _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}h]h asnameids}(j[hjZjWhhjjjRjOu nametypes}(j[jZhjjRuh}(hh&jWh&hhbjhjOju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages]h system_message)}(hhh]h<)}(hhh]h09Hyperlink target "example-file-system" is not referenced.}h jsbah}(h]h]h]h]h]uhh;h jubah}(h]h]h]h]h]levelKtypeINFOsourceh#lineKuhjuba transformerN include_log] decorationNh!hub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/fuse_api.doctree0000664000175000017500000001130214463757444017603 0ustar00twtwsphinx.addnodesdocument)}( rawsourcechildren]docutils.nodessection)}(hhh](h title)}(hFUSE API Functionsh]h TextFUSE API Functions}(parenth _documenthsourceNlineNuba attributes}(ids]classes]names]dupnames]backrefs]utagnamehhh hhh#/home/tw/w/pyfuse3/rst/fuse_api.rsthKubhindex)}(hhh]h}(h!]h#]h%]h']h)]entries](singletrio_token (in module pyfuse3)pyfuse3.trio_tokenhNtauh+h-hh hhhh,hNubhdesc)}(hhh](hdesc_signature)}(h trio_tokenh](h desc_addname)}(hpyfuse3.h]hpyfuse3.}(hhKhhhNhNubah}(h!]h#]( sig-prename descclassnameeh%]h']h)] xml:spacepreserveuh+hIhhEhhhh,hKubh desc_name)}(hhGh]h trio_token}(hh_hhhNhNubah}(h!]h#](sig-namedescnameeh%]h']h)]h[h\uh+h]hhEhhhh,hKubeh}(h!]hhhhh hh,hNubeh}(h!]fuse-api-functionsah#]h%]fuse api functionsah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjFerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh, _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}j js nametypes}j sh!}(jh hhhhNhNubah}(h!]h#]h%]h']h)]uh+hhh;hhhh,hK ubh paragraph)}(hXA file system is implemented by subclassing the `pyfuse3.Operations` class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode.h](h0A file system is implemented by subclassing the }(hhNhhhNhNubh pending_xref)}(h`pyfuse3.Operations`h]h literal)}(hhZh]hpyfuse3.Operations}(hh^hhhNhNubah}(h!]h#](xrefpypy-objeh%]h']h)]uh+h\hhXubah}(h!]h#]h%]h']h)]refdocgeneral refdomainhireftypeobj refexplicitrefwarn py:modulepyfuse3py:classN reftargetpyfuse3.Operationsuh+hVhh,hK hhNubhX? class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode.}(hhNhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hK hh;hhubhM)}(hXGBy default, pyfuse3 uses asynchronous I/O using Trio_, and most of the documentation assumes that you are using Trio. If you'd rather use asyncio, take a look at :ref:`asyncio Support `. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the `Trio tutorial`_ first.h](h0By default, pyfuse3 uses asynchronous I/O using }(hhhhhNhNubh reference)}(hTrio_h]hTrio}(hhhhhNhNubah}(h!]h#]h%]h']h)]nameTriorefuri#https://github.com/python-trio/triouh+hhhresolvedKubho, and most of the documentation assumes that you are using Trio. If you’d rather use asyncio, take a look at }(hhhhhNhNubhW)}(h :ref:`asyncio Support `h]h inline)}(hhh]hasyncio Support}(hhhhhNhNubah}(h!]h#](hhstdstd-refeh%]h']h)]uh+hhhubah}(h!]h#]h%]h']h)]refdochu refdomainhreftyperef refexplicitrefwarnh~asynciouh+hVhh,hKhhubhn. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the }(hhhhhNhNubh)}(h`Trio tutorial`_h]h Trio tutorial}(hhhhhNhNubah}(h!]h#]h%]h']h)]name Trio tutorialh3https://trio.readthedocs.io/en/latest/tutorial.htmluh+hhhhKubh first.}(hhhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hKhh;hhubhM)}(hXAn instance of the operations class is passed to `pyfuse3.init` to mount the file system. To enter the request handling loop, run `pyfuse3.main` in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling `pyfuse3.close`.h](h1An instance of the operations class is passed to }(hhhhhNhNubhW)}(h`pyfuse3.init`h]h])}(hhh]h pyfuse3.init}(hhhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hhubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~ pyfuse3.inituh+hVhh,hKhhubhC to mount the file system. To enter the request handling loop, run }(hhhhhNhNubhW)}(h`pyfuse3.main`h]h])}(hjh]h pyfuse3.main}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainj&reftypeobj refexplicitrefwarnh{h|h}Nh~ pyfuse3.mainuh+hVhh,hKhhubhz in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling }(hhhhhNhNubhW)}(h`pyfuse3.close`h]h])}(hj>h]h pyfuse3.close}(hj@hhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hj<ubah}(h!]h#]h%]h']h)]refdochu refdomainjJreftypeobj refexplicitrefwarnh{h|h}Nh~ pyfuse3.closeuh+hVhh,hKhhubh.}(hhhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hKhh;hhubhM)}(hAll character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as `bytes` and must be returned as `bytes`.h](hyAll character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as }(hjfhhhNhNubhW)}(h`bytes`h]h])}(hjph]hbytes}(hjrhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjnubah}(h!]h#]h%]h']h)]refdochu refdomainj|reftypeobj refexplicitrefwarnh{h|h}Nh~bytesuh+hVhh,hKhjfubh and must be returned as }(hjfhhhNhNubhW)}(h`bytes`h]h])}(hjh]hbytes}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~bytesuh+hVhh,hKhjfubh.}(hjfhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hKhh;hhubhM)}(h{For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler_ module.h](hfFor easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the }(hjhhhNhNubh)}(h faulthandler_h]h faulthandler}(hjhhhNhNubah}(h!]h#]h%]h']h)]name faulthandlerh2http://docs.python.org/3/library/faulthandler.htmluh+hhjhKubh module.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hK#hh;hhubh.)}(hD.. _faulthandler: http://docs.python.org/3/library/faulthandler.htmlh]h}(h!] faulthandlerah#]h%] faulthandlerah']h)]hjuh+h-hK&hh;hhhh, referencedKubh.)}(hF.. _Trio tutorial: https://trio.readthedocs.io/en/latest/tutorial.htmlh]h}(h!] trio-tutorialah#]h%] trio tutorialah']h)]hhuh+h-hK'hh;hhhh,jKubh.)}(h-.. _Trio: https://github.com/python-trio/trioh]h}(h!]trioah#]h%]trioah']h)]hhuh+h-hK(hh;hhhh,jKubeh}(h!](h:id1eh#]h%](getting startedgetting_startedeh']h)]uh+h hh hhhh,hK expect_referenced_by_name}j h/sexpect_referenced_by_id}h:h/subh )}(hhh](h)}(h Lookup Countsh]h Lookup Counts}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hK+ubhM)}(hXlMost file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the *unlink* system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.h](hMost file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the }(hj"hhhNhNubh emphasis)}(h*unlink*h]hunlink}(hj,hhhNhNubah}(h!]h#]h%]h']h)]uh+j*hj"ubh system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.}(hj"hhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hK-hjhhubhM)}(hXFUSE file systems achieve this by using "lookup counts". A lookup count is a number that's associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.h]hXFUSE file systems achieve this by using “lookup counts”. A lookup count is a number that’s associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.}(hjDhhhNhNubah}(h!]h#]h%]h']h)]uh+hLhh,hK4hjhhubhM)}(hXThe lookup count of an inode is increased by every operation that could make the inode "known" to the kernel. This includes e.g. `~Operations.lookup`, `~Operations.create` and `~Operations.readdir` (to determine if a given request handler affects the lookup count, please refer to its description in the `Operations` class). The lookup count is decreased by calls to the `~Operations.forget` handler.h](hThe lookup count of an inode is increased by every operation that could make the inode “known” to the kernel. This includes e.g. }(hjRhhhNhNubhW)}(h`~Operations.lookup`h]h])}(hj\h]hlookup}(hj^hhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjZubah}(h!]h#]h%]h']h)]refdochu refdomainjhreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.lookupuh+hVhh,hK;hjRubh, }(hjRhhhNhNubhW)}(h`~Operations.create`h]h])}(hjh]hcreate}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hj~ubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.createuh+hVhh,hK;hjRubh and }(hjRhhhNhNubhW)}(h`~Operations.readdir`h]h])}(hjh]hreaddir}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.readdiruh+hVhh,hK;hjRubhk (to determine if a given request handler affects the lookup count, please refer to its description in the }(hjRhhhNhNubhW)}(h `Operations`h]h])}(hjh]h Operations}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~ Operationsuh+hVhh,hK;hjRubh8 class). The lookup count is decreased by calls to the }(hjRhhhNhNubhW)}(h`~Operations.forget`h]h])}(hjh]hforget}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.forgetuh+hVhh,hK;hjRubh handler.}(hjRhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hK;hjhhubeh}(h!] lookup-countsah#]h%] lookup countsah']h)]uh+h hh hhhh,hK+ubh )}(hhh](h)}(hFUSE and VFS Lockingh]hFUSE and VFS Locking}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjhhhh,hKEubhM)}(hFUSE and the kernel's VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:h]hFUSE and the kernel’s VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:}(hj-hhhNhNubah}(h!]h#]h%]h']h)]uh+hLhh,hKGhjhhubh bullet_list)}(hhh](h list_item)}(hXCalls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename). h]hM)}(hXCalls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).h](h Calls to }(hjFhhhNhNubhW)}(h`~Operations.rename`h]h])}(hjPh]hrename}(hjRhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjNubah}(h!]h#]h%]h']h)]refdochu refdomainj\reftypeobj refexplicitrefwarnh{h|h}Nh~Operations.renameuh+hVhh,hKJhjFubh, }(hjFhhhNhNubhW)}(h`~Operations.create`h]h])}(hjth]hcreate}(hjvhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjrubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.createuh+hVhh,hKJhjFubh, }(hjFhhhNhNubhW)}(h`~Operations.symlink`h]h])}(hjh]hsymlink}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.symlinkuh+hVhh,hKJhjFubh, }hjFsbhW)}(h`~Operations.mknod`h]h])}(hjh]hmknod}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.mknoduh+hVhh,hKJhjFubh, }hjFsbhW)}(h`~Operations.link`h]h])}(hjh]hlink}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.linkuh+hVhh,hKJhjFubh and }(hjFhhhNhNubhW)}(h`~Operations.mkdir`h]h])}(hjh]hmkdir}(hjhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.mkdiruh+hVhh,hKJhjFubhz acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).}(hjFhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hKJhjBubah}(h!]h#]h%]h']h)]uh+j@hj=hhhh,hNubjA)}(hCalls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation). h]hM)}(hCalls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).h](h Calls to }(hj6hhhNhNubhW)}(h`~Operations.lookup`h]h])}(hj@h]hlookup}(hjBhhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hj>ubah}(h!]h#]h%]h']h)]refdochu refdomainjLreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.lookupuh+hVhh,hKPhj6ubh acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).}(hj6hhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hKPhj2ubah}(h!]h#]h%]h']h)]uh+j@hj=hhhh,hNubjA)}(hUnless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).h]hM)}(hUnless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).h](h.Unless writeback caching is enabled, calls to }(hjrhhhNhNubhW)}(h`~Operations.write`h]h])}(hj|h]hwrite}(hj~hhhNhNubah}(h!]h#](hhpypy-objeh%]h']h)]uh+h\hjzubah}(h!]h#]h%]h']h)]refdochu refdomainjreftypeobj refexplicitrefwarnh{h|h}Nh~Operations.writeuh+hVhh,hKUhjrubh for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).}(hjrhhhNhNubeh}(h!]h#]h%]h']h)]uh+hLhh,hKUhjnubah}(h!]h#]h%]h']h)]uh+j@hj=hhhh,hNubeh}(h!]h#]h%]h']h)]bullet*uh+j;hh,hKJhjhhubeh}(h!]fuse-and-vfs-lockingah#]h%]fuse and vfs lockingah']h)]uh+h hh hhhh,hKEubeh}(h!]general-informationah#]h%]general informationah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh, _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}(trio]ha trio tutorial]ha faulthandler]jaurefids}h:]h/asnameids}(jjj h:j jjjjjjjjjjju nametypes}(jj j jjjjjuh!}(jh h:h;jh;jjjjjjjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages]transform_messages]h system_message)}(hhh]hM)}(hhh]h5Hyperlink target "getting-started" is not referenced.}hjTsbah}(h!]h#]h%]h']h)]uh+hLhjQubah}(h!]h#]h%]h']h)]levelKtypeINFOsourceh,lineKuh+jOuba transformerN include_log] decorationNhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/gotchas.doctree0000664000175000017500000001224614463757444017450 0ustar00twtwsphinx.addnodesdocument)}( rawsourcechildren]docutils.nodessection)}(hhh](h title)}(hCommon Gotchash]h TextCommon Gotchas}(parenth _documenthsourceNlineNuba attributes}(ids]classes]names]dupnames]backrefs]utagnamehhh hhh"/home/tw/w/pyfuse3/rst/gotchas.rsthKubh paragraph)}(h>This chapter lists some common gotchas that should be avoided.h]h>This chapter lists some common gotchas that should be avoided.}(hh/hhhNhNubah}(h!]h#]h%]h']h)]uh+h-hh,hKhh hhubh )}(hhh](h)}(h!Removing inodes in unlink handlerh]h!Removing inodes in unlink handler}(hh@hhhNhNubah}(h!]h#]h%]h']h)]uh+hhh=hhhh,hK ubh.)}(hbIf your file system is mounted at :file:`mnt`, the following code should complete without errors::h](h"If your file system is mounted at }(hhNhhhNhNubh literal)}(h :file:`mnt`h]hmnt}(hhXhhhNhNubah}(h!]h#]fileah%]h']h)]rolefileuh+hVhhNubh4, the following code should complete without errors:}(hhNhhhNhNubeh}(h!]h#]h%]h']h)]uh+h-hh,hK hh=hhubh literal_block)}(hX:with open('mnt/file_one', 'w+') as fh1: fh1.write('foo') fh1.flush() with open('mnt/file_one', 'a') as fh2: os.unlink('mnt/file_one') assert 'file_one' not in os.listdir('mnt') fh2.write('bar') os.close(os.dup(fh1.fileno())) fh1.seek(0) assert fh1.read() == 'foobar'h]hX:with open('mnt/file_one', 'w+') as fh1: fh1.write('foo') fh1.flush() with open('mnt/file_one', 'a') as fh2: os.unlink('mnt/file_one') assert 'file_one' not in os.listdir('mnt') fh2.write('bar') os.close(os.dup(fh1.fileno())) fh1.seek(0) assert fh1.read() == 'foobar'}hhusbah}(h!]h#]h%]h']h)] xml:spacepreserveuh+hshh,hKhh=hhubh.)}(hIf you're getting an error, then you probably did a mistake when implementing the `~Operations.unlink` handler and are removing the file contents when you should be deferring removal to the `~Operations.forget` handler.h](hTIf you’re getting an error, then you probably did a mistake when implementing the }(hhhhhNhNubh pending_xref)}(h`~Operations.unlink`h]hW)}(hhh]hunlink}(hhhhhNhNubah}(h!]h#](xrefpypy-objeh%]h']h)]uh+hVhhubah}(h!]h#]h%]h']h)]refdocgotchas refdomainhreftypeobj refexplicitrefwarn py:modulepyfuse3py:classN reftargetOperations.unlinkuh+hhh,hKhhubhX handler and are removing the file contents when you should be deferring removal to the }(hhhhhNhNubh)}(h`~Operations.forget`h]hW)}(hhh]hforget}(hhhhhNhNubah}(h!]h#](hpypy-objeh%]h']h)]uh+hVhhubah}(h!]h#]h%]h']h)]refdoch refdomainhnjreftypeobj refexplicitrefwarnhhhNhOperations.forgetuh+hhh,hKhhubh handler.}(hhhhhNhNubeh}(h!]h#]h%]h']h)]uh+h-hh,hKhh=hhubeh}(h!]!removing-inodes-in-unlink-handlerah#]h%]!removing inodes in unlink handlerah']h)]uh+h hh hhhh,hK ubeh}(h!]common-gotchasah#]h%]common gotchasah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh, _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(hhhhu nametypes}(hhuh!}(hh hh=u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/index.doctree0000664000175000017500000001071314463757444017124 0ustar00twtwsphinx.addnodesdocument)}( rawsourcechildren]docutils.nodessection)}(hhh](h title)}(hpyfuse3 Documentationh]h Textpyfuse3 Documentation}(parenth _documenthsourceNlineNuba attributes}(ids]classes]names]dupnames]backrefs]utagnamehhh hhh /home/tw/w/pyfuse3/rst/index.rsthKubh )}(hhh](h)}(hTable of Contentsh]hTable of Contents}(hh0hhhNhNubah}(h!]h#]h%]h']h)]uh+hhh-hhhh,hKubhindex)}(hhh]h}(h!]h#]h%]h']h)]entries](pairmodule; pyfuse3module-pyfuse3hNtauh+h>hh-hhhNhNubh compound)}(hhh]htoctree)}(hhh]h}(h!]h#]h%]h']h)]hindexentries](NaboutNinstallNgeneralNasyncioNfuse_apiNdataN operationsNutilNgotchasNexampleNchangese includefiles](hbhdhfhhhjhlhnhphrhthvemaxdepthKcaptionNglobhidden includehiddennumberedK titlesonly rawentries]uh+hThh,hK hhQubah}(h!]h#]toctree-wrapperah%]h']h)]uh+hOhh-hhhh,hNubeh}(h!](hMtable-of-contentseh#]h%]table of contentsah']h)]uh+h hh hhhh,hKubh )}(hhh](h)}(hIndices and tablesh]hIndices and tables}(hhhhhNhNubah}(h!]h#]h%]h']h)]uh+hhhhhhh,hKubh bullet_list)}(hhh](h list_item)}(h:ref:`genindex`h]h paragraph)}(hhh]h pending_xref)}(hhh]h inline)}(hhh]hgenindex}(hhhhhNhNubah}(h!]h#](xrefstdstd-refeh%]h']h)]uh+hhhubah}(h!]h#]h%]h']h)]refdoch_ refdomainhŌreftyperef refexplicitrefwarn reftargetgenindexuh+hhh,hKhhubah}(h!]h#]h%]h']h)]uh+hhh,hKhhubah}(h!]h#]h%]h']h)]uh+hhhhhhh,hNubh)}(h :ref:`search`h]h)}(hhh]h)}(hhh]h)}(hhh]hsearch}(hhhhhNhNubah}(h!]h#](hČstdstd-refeh%]h']h)]uh+hhhubah}(h!]h#]h%]h']h)]refdoch_ refdomainhreftyperef refexplicitrefwarnh֌searchuh+hhh,hKhhubah}(h!]h#]h%]h']h)]uh+hhh,hKhhubah}(h!]h#]h%]h']h)]uh+hhhhhhh,hNubeh}(h!]h#]h%]h']h)]bullet*uh+hhh,hKhhhhubeh}(h!]indices-and-tablesah#]h%]indices and tablesah']h)]uh+h hh hhhh,hKubeh}(h!]pyfuse3-documentationah#]h%]pyfuse3 documentationah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjQerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh, _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j+j(hhj#j u nametypes}(j+hj#uh!}(j(h hh-hMh target)}(hhh]h}(h!]hMah#]h%]h']h)]ismoduh+jhh,hKhh-hhubj hu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/.doctrees/install.doctree0000664000175000017500000003567014463757444017474 0ustar00twtw;sphinx.addnodesdocument)}( rawsourcechildren]docutils.nodessection)}(hhh](h title)}(h Installationh]h Text Installation}(parenth _documenthsourceNlineNuba attributes}(ids]classes]names]dupnames]backrefs]utagnamehhh hhh"/home/tw/w/pyfuse3/rst/install.rsthKubh highlightlang)}(hhh]h}(h!]h#]h%]h']h)]langshforcelinenothresholduh+h-hh hhhh,hKubh )}(hhh](h)}(h Dependenciesh]h Dependencies}(hh?hhhNhNubah}(h!]h#]h%]h']h)]uh+hhhhhhNhNubh)}(h%https://pypi.python.org/pypi/pyfuse3/h]h%https://pypi.python.org/pypi/pyfuse3/}(hjEhhhNhNubah}(h!]h#]h%]h']h)]refurijGuh+hhj>ubeh}(h!]h#]h%]h']h)]uh+hMhh,hK"hj:ubah}(h!]h#]h%]h']h)]uh+hbhj7hhhh,hNubhc)}(hERun ``python3 setup.py build_ext --inplace`` to build the C extensionh]hN)}(hjbh](hRun }(hjdhhhNhNubh literal)}(h(``python3 setup.py build_ext --inplace``h]h$python3 setup.py build_ext --inplace}(hjmhhhNhNubah}(h!]h#]h%]h']h)]uh+jkhjdubh to build the C extension}(hjdhhhNhNubeh}(h!]h#]h%]h']h)]uh+hMhh,hK#hj`ubah}(h!]h#]h%]h']h)]uh+hbhj7hhhh,hNubhc)}(hRun ``python3 -m pytest test/`` to run a self-test. If this fails, ask for help on the `FUSE mailing list`_ or report a bug in the `issue tracker `_.h]hN)}(hRun ``python3 -m pytest test/`` to run a self-test. If this fails, ask for help on the `FUSE mailing list`_ or report a bug in the `issue tracker `_.h](hRun }(hjhhhNhNubjl)}(h``python3 -m pytest test/``h]hpython3 -m pytest test/}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+jkhjubh8 to run a self-test. If this fails, ask for help on the }(hjhhhNhNubh)}(h`FUSE mailing list`_h]hFUSE mailing list}(hjhhhNhNubah}(h!]h#]h%]h']h)]nameFUSE mailing listh7https://lists.sourceforge.net/lists/listinfo/fuse-develuh+hhjhKubh or report a bug in the }(hjhhhNhNubh)}(hG`issue tracker `_h]h issue tracker}(hjhhhNhNubah}(h!]h#]h%]h']h)]name issue trackerh4https://bitbucket.org/nikratio/python-pyfuse3/issuesuh+hhjubh target)}(h7 h]h}(h!] issue-trackerah#]h%] issue trackerah']h)]refurijuh+j referencedKhjubh.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hMhh,hK$hjubah}(h!]h#]h%]h']h)]uh+hbhj7hhhh,hNubhc)}(hTo install system-wide for all users, run ``sudo python setup.py install``. To install into :file:`~/.local`, run ``python3 setup.py install --user``. h]hN)}(hTo install system-wide for all users, run ``sudo python setup.py install``. To install into :file:`~/.local`, run ``python3 setup.py install --user``.h](h*To install system-wide for all users, run }(hjhhhNhNubjl)}(h ``sudo python setup.py install``h]hsudo python setup.py install}(hjhhhNhNubah}(h!]h#]h%]h']h)]uh+jkhjubh. To install into }(hjhhhNhNubjl)}(h:file:`~/.local`h]h~/.local}(hj hhhNhNubah}(h!]h#]fileah%]h']h)]rolefileuh+jkhjubh, run }(hjhhhNhNubjl)}(h#``python3 setup.py install --user``h]hpython3 setup.py install --user}(hj"hhhNhNubah}(h!]h#]h%]h']h)]uh+jkhjubh.}(hjhhhNhNubeh}(h!]h#]h%]h']h)]uh+hMhh,hK'hjubah}(h!]h#]h%]h']h)]uh+hbhj7hhhh,hNubeh}(h!]h#]h%]h']h)]enumtypearabicprefixhsuffix.uh+j5hjhhhh,hK"ubeh}(h!]stable-releasesah#]h%]stable releasesah']h)]uh+h hh hhhh,hKubh )}(hhh](h)}(hDevelopment Versionh]hDevelopment Version}(hjVhhhNhNubah}(h!]h#]h%]h']h)]uh+hhjShhhh,hK-ubhN)}(hIf you have checked out the unstable development version, a bit more effort is required. You need to also have Cython_ (0.29 or newer) and Sphinx_ (<6.0) installed, and the necessary commands are::h](hoIf you have checked out the unstable development version, a bit more effort is required. You need to also have }(hjdhhhNhNubh)}(hCython_h]hCython}(hjlhhhNhNubah}(h!]h#]h%]h']h)]nameCythonhhttp://www.cython.org/uh+hhjdhKubh (0.29 or newer) and }(hjdhhhNhNubh)}(hSphinx_h]hSphinx}(hjhhhNhNubah}(h!]h#]h%]h']h)]nameSphinxhhttp://sphinx.pocoo.org/uh+hhjdhKubh2 (<6.0) installed, and the necessary commands are:}(hjdhhhNhNubeh}(h!]h#]h%]h']h)]uh+hMhh,hK/hjShhubh literal_block)}(hpython3 setup.py build_cython python3 setup.py build_ext --inplace python3 -m pytest test/ sphinx-build -b html rst doc/html python3 setup.py installh]hpython3 setup.py build_cython python3 setup.py build_ext --inplace python3 -m pytest test/ sphinx-build -b html rst doc/html python3 setup.py install}hjsbah}(h!]h#]h%]h']h)] xml:spacepreserveuh+jhh,hK3hjShhubj)}(h".. _Cython: http://www.cython.org/h]h}(h!]cythonah#]h%]cythonah']h)]hj|uh+jhK:hjShhhh,jKubj)}(h$.. _Sphinx: http://sphinx.pocoo.org/h]h}(h!]sphinxah#]h%]sphinxah']h)]hjuh+jhK;hjShhhh,jKubj)}(h".. _Python: http://www.python.org/h]h}(h!]pythonah#]h%]pythonah']h)]hhuh+jhKhjShhhh,jKubj)}(h3.. _`py.test`: https://pypi.python.org/pypi/pytest/h]h}(h!]py-testah#]h%]py.testah']h)]hjuh+jhK?hjShhhh,jKubj)}(h... _libfuse: http://github.com/libfuse/libfuseh]h}(h!]libfuseah#]h%]libfuseah']h)]hhuh+jhK@hjShhhh,jKubj)}(h3.. _attr: http://savannah.nongnu.org/projects/attr/h]h}(h!]attrah#]h%]attrah']h)]hjuh+jhKAhjShhhh,jKubj)}(hE.. _`pkg-config`: http://www.freedesktop.org/wiki/Software/pkg-configh]h}(h!] pkg-configah#]h%] pkg-configah']h)]hjmuh+jhKBhjShhhh,jKubj)}(h7.. _setuptools: https://pypi.python.org/pypi/setuptoolsh]h}(h!] setuptoolsah#]h%] setuptoolsah']h)]hjAuh+jhKChjShhhh,jKubeh}(h!]development-versionah#]h%]development versionah']h)]uh+h hh hhhh,hK-ubeh}(h!] installationah#]h%] installationah']h)]uh+h hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encodingutf-8input_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjYerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh, _destinationN _config_files]file_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}(libfuse]hapython]hatrio]ja setuptools]j1a pkg-config]j]aattr]japy.test]jafuse mailing list]jacython]jlasphinx]jaurefids}nameids}(j3j0jjjPjMjjj+j(jjjjjjjjjjjjjjj jjjj#j u nametypes}(j3jjPjj+jjjjjjjj jj#uh!}(j0h jh` option is guaranteed never to be included in the default options, so you can always safely add it to the set). The default options are: * ``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect. .. autoexception:: FUSEError .. autoclass:: RequestContext .. attribute:: pid .. attribute:: uid .. attribute:: gid .. attribute:: umask .. autoclass:: StatvfsData .. attribute:: f_bsize .. attribute:: f_frsize .. attribute:: f_blocks .. attribute:: f_bfree .. attribute:: f_bavail .. attribute:: f_files .. attribute:: f_ffree .. attribute:: f_favail .. attribute:: f_namemax .. autoclass:: EntryAttributes .. autoattribute:: st_ino .. autoattribute:: generation .. autoattribute:: entry_timeout .. autoattribute:: attr_timeout .. autoattribute:: st_mode .. autoattribute:: st_nlink .. autoattribute:: st_uid .. autoattribute:: st_gid .. autoattribute:: st_rdev .. autoattribute:: st_size .. autoattribute:: st_blksize .. autoattribute:: st_blocks .. autoattribute:: st_atime_ns .. autoattribute:: st_ctime_ns .. autoattribute:: st_mtime_ns .. autoclass:: FileInfo .. autoattribute:: fh This attribute must be set to the file handle to be returned from `Operations.open`. .. autoattribute:: direct_io If true, signals to the kernel that this file should not be cached or buffered. .. autoattribute:: keep_cache If true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated. .. autoattribute:: nonseekable If true, indicates that the file does not support seeking. .. autoclass:: SetattrFields .. attribute:: update_atime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_atime_ns` field contains an updated value. .. attribute:: update_mtime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mtime_ns` field contains an updated value. .. attribute:: update_mode If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mode` field contains an updated value. .. attribute:: update_uid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_uid` field contains an updated value. .. attribute:: update_gid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_gid` field contains an updated value. .. attribute:: update_size If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_size` field contains an updated value. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/example.rst.txt0000664000175000017500000000145114461445163017372 0ustar00twtw.. _example file system: ====================== Example File Systems ====================== pyfuse3 comes with several example file systems in the :file:`examples` directory of the release tarball. For completeness, these examples are also included here. Single-file, Read-only File System ================================== (shipped as :file:`examples/lltest.py`) .. literalinclude:: ../examples/hello.py :linenos: :language: python In-memory File System ===================== (shipped as :file:`examples/tmpfs.py`) .. literalinclude:: ../examples/tmpfs.py :linenos: :language: python Passthrough / Overlay File System ================================= (shipped as :file:`examples/passthroughfs.py`) .. literalinclude:: ../examples/passthroughfs.py :linenos: :language: python ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/fuse_api.rst.txt0000664000175000017500000000110714461445163017530 0ustar00twtw==================== FUSE API Functions ==================== .. currentmodule:: pyfuse3 .. autofunction:: init .. autocofunction:: main .. autofunction:: terminate .. autofunction:: close .. autofunction:: invalidate_inode .. autofunction:: invalidate_entry .. autofunction:: invalidate_entry_async .. autofunction:: notify_store .. autofunction:: readdir_reply .. py:data:: trio_token Set to the value returned by `trio.lowlevel.current_trio_token()` while `main()` is running. Can be used by other threads to run code in the main loop through `trio.from_thread.run`. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/general.rst.txt0000664000175000017500000000717614461445163017366 0ustar00twtw===================== General Information ===================== .. currentmodule:: pyfuse3 .. _getting_started: Getting started =============== A file system is implemented by subclassing the `pyfuse3.Operations` class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode. By default, pyfuse3 uses asynchronous I/O using Trio_, and most of the documentation assumes that you are using Trio. If you'd rather use asyncio, take a look at :ref:`asyncio Support `. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the `Trio tutorial`_ first. An instance of the operations class is passed to `pyfuse3.init` to mount the file system. To enter the request handling loop, run `pyfuse3.main` in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling `pyfuse3.close`. All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as `bytes` and must be returned as `bytes`. For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler_ module. .. _faulthandler: http://docs.python.org/3/library/faulthandler.html .. _Trio tutorial: https://trio.readthedocs.io/en/latest/tutorial.html .. _Trio: https://github.com/python-trio/trio Lookup Counts ============= Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the *unlink* system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process. FUSE file systems achieve this by using "lookup counts". A lookup count is a number that's associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled. The lookup count of an inode is increased by every operation that could make the inode "known" to the kernel. This includes e.g. `~Operations.lookup`, `~Operations.create` and `~Operations.readdir` (to determine if a given request handler affects the lookup count, please refer to its description in the `Operations` class). The lookup count is decreased by calls to the `~Operations.forget` handler. FUSE and VFS Locking ==================== FUSE and the kernel's VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically: * Calls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename). * Calls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation). * Unless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled). ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/gotchas.rst.txt0000664000175000017500000000154514461445163017373 0ustar00twtw================ Common Gotchas ================ .. currentmodule:: pyfuse3 This chapter lists some common gotchas that should be avoided. Removing inodes in unlink handler ================================= If your file system is mounted at :file:`mnt`, the following code should complete without errors:: with open('mnt/file_one', 'w+') as fh1: fh1.write('foo') fh1.flush() with open('mnt/file_one', 'a') as fh2: os.unlink('mnt/file_one') assert 'file_one' not in os.listdir('mnt') fh2.write('bar') os.close(os.dup(fh1.fileno())) fh1.seek(0) assert fh1.read() == 'foobar' If you're getting an error, then you probably did a mistake when implementing the `~Operations.unlink` handler and are removing the file contents when you should be deferring removal to the `~Operations.forget` handler. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/index.rst.txt0000664000175000017500000000062714461445163017052 0ustar00twtw============================= pyfuse3 Documentation ============================= Table of Contents ----------------- .. module:: pyfuse3 .. toctree:: :maxdepth: 1 about.rst install.rst general.rst asyncio.rst fuse_api.rst data.rst operations.rst util.rst gotchas.rst example.rst changes.rst Indices and tables ------------------ * :ref:`genindex` * :ref:`search` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/install.rst.txt0000664000175000017500000000425414461445163017411 0ustar00twtw============== Installation ============== .. highlight:: sh Dependencies ============ In order to build and run pyfuse3 you need the following software: * Linux kernel 3.9 or newer. * Version 3.3.0 or newer of the libfuse_ library, including development headers (typically distributions provide them in a *libfuse3-devel* or *libfuse3-dev* package). * Python_ 3.8 or newer installed with development headers * The Trio_ Python module, version 0.7 or newer. * The `setuptools`_ Python module, version 1.0 or newer. * the `pkg-config`_ tool * the `attr`_ library * A C compiler (only for building) To run the unit tests, you will need * The `py.test`_ Python module, version 3.3.0 or newer Stable releases =============== To install a stable pyfuse3 release: 1. Download and unpack the release tarball from https://pypi.python.org/pypi/pyfuse3/ 2. Run ``python3 setup.py build_ext --inplace`` to build the C extension 3. Run ``python3 -m pytest test/`` to run a self-test. If this fails, ask for help on the `FUSE mailing list`_ or report a bug in the `issue tracker `_. 4. To install system-wide for all users, run ``sudo python setup.py install``. To install into :file:`~/.local`, run ``python3 setup.py install --user``. Development Version =================== If you have checked out the unstable development version, a bit more effort is required. You need to also have Cython_ (0.29 or newer) and Sphinx_ (<6.0) installed, and the necessary commands are:: python3 setup.py build_cython python3 setup.py build_ext --inplace python3 -m pytest test/ sphinx-build -b html rst doc/html python3 setup.py install .. _Cython: http://www.cython.org/ .. _Sphinx: http://sphinx.pocoo.org/ .. _Python: http://www.python.org/ .. _Trio: https://github.com/python-trio/trio .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _`py.test`: https://pypi.python.org/pypi/pytest/ .. _libfuse: http://github.com/libfuse/libfuse .. _attr: http://savannah.nongnu.org/projects/attr/ .. _`pkg-config`: http://www.freedesktop.org/wiki/Software/pkg-config .. _setuptools: https://pypi.python.org/pypi/setuptools ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/operations.rst.txt0000664000175000017500000000235114461445163020122 0ustar00twtw================== Request Handlers ================== (You can use the :ref:`genindex` to directly jump to a specific handler). .. currentmodule:: pyfuse3 .. autoclass:: Operations :members: .. attribute:: supports_dot_lookup = True If set, indicates that the filesystem supports lookup of the ``.`` and ``..`` entries. This is required if the file system will be shared over NFS. .. attribute:: enable_writeback_cache = True Enables write-caching in the kernel if available. This means that individual write request may be buffered and merged in the kernel before they are send to the filesystem. .. attribute:: enable_acl = False Enable ACL support. When enabled, the kernel will cache and have responsibility for enforcing ACLs. ACL will be stored as xattrs and passed to userspace, which is responsible for updating the ACLs in the filesystem, keeping the file mode in sync with the ACL, and ensuring inheritance of default ACLs when new filesystem nodes are created. Note that this requires that the file system is able to parse and interpret the xattr representation of ACLs. Enabling this feature implicitly turns on the ``default_permissions`` option. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/doc/html/_sources/util.rst.txt0000664000175000017500000000062714461445163016720 0ustar00twtw==================== Utility Functions ==================== The following functions do not necessarily translate to calls to the FUSE library. They are provided because they're potentially useful when implementing file systems in Python. .. currentmodule:: pyfuse3 .. autofunction:: setxattr .. autofunction:: getxattr .. autofunction:: listdir .. autofunction:: get_sup_groups .. autofunction:: syncfs ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1691344718.547961 pyfuse3-3.3.0/doc/html/_static/0000775000175000017500000000000014463757517014205 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344129.0 pyfuse3-3.3.0/doc/html/_static/_sphinx_javascript_frameworks_compat.js0000664000175000017500000001050214463756401024231 0ustar00twtw/* * _sphinx_javascript_frameworks_compat.js * ~~~~~~~~~~ * * Compatability shim for jQuery and underscores.js. * * WILL BE REMOVED IN Sphinx 6.0 * xref RemovedInSphinx60Warning * */ /** * select a different prefix for underscore */ $u = _.noConflict(); /** * small helper function to urldecode strings * * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL */ jQuery.urldecode = function(x) { if (!x) { return x } return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** * small helper function to urlencode strings */ jQuery.urlencode = encodeURIComponent; /** * This function returns the parsed url parameters of the * current request. Multiple values per key are supported, * it will always return arrays of strings for the value parts. */ jQuery.getQueryParameters = function(s) { if (typeof s === 'undefined') s = document.location.search; var parts = s.substr(s.indexOf('?') + 1).split('&'); var result = {}; for (var i = 0; i < parts.length; i++) { var tmp = parts[i].split('=', 2); var key = jQuery.urldecode(tmp[0]); var value = jQuery.urldecode(tmp[1]); if (key in result) result[key].push(value); else result[key] = [value]; } return result; }; /** * highlight a given string on a jquery object by wrapping it in * span elements with the given class name. */ jQuery.fn.highlightText = function(text, className) { function highlight(node, addItems) { if (node.nodeType === 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); if (pos >= 0 && !jQuery(node.parentNode).hasClass(className) && !jQuery(node.parentNode).hasClass("nohighlight")) { var span; var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); if (isInSVG) { span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); } else { span = document.createElement("span"); span.className = className; } span.appendChild(document.createTextNode(val.substr(pos, text.length))); node.parentNode.insertBefore(span, node.parentNode.insertBefore( document.createTextNode(val.substr(pos + text.length)), node.nextSibling)); node.nodeValue = val.substr(0, pos); if (isInSVG) { var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); var bbox = node.parentElement.getBBox(); rect.x.baseVal.value = bbox.x; rect.y.baseVal.value = bbox.y; rect.width.baseVal.value = bbox.width; rect.height.baseVal.value = bbox.height; rect.setAttribute('class', className); addItems.push({ "parent": node.parentNode, "target": rect}); } } } else if (!jQuery(node).is("button, select, textarea")) { jQuery.each(node.childNodes, function() { highlight(this, addItems); }); } } var addItems = []; var result = this.each(function() { highlight(this, addItems); }); for (var i = 0; i < addItems.length; ++i) { jQuery(addItems[i].parent).before(addItems[i].target); } return result; }; /* * backward compatibility for jQuery.browser * This will be supported until firefox bug is fixed. */ if (!jQuery.browser) { jQuery.uaMatch = function(ua) { ua = ua.toLowerCase(); var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || /(webkit)[ \/]([\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || /(msie) ([\w.]+)/.exec(ua) || ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || []; return { browser: match[ 1 ] || "", version: match[ 2 ] || "0" }; }; jQuery.browser = {}; jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/_static/basic.css0000664000175000017500000003473214463757445016011 0ustar00twtw/* * basic.css * ~~~~~~~~~ * * Sphinx stylesheet -- basic theme. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /* -- main layout ----------------------------------------------------------- */ div.clearer { clear: both; } div.section::after { display: block; content: ''; clear: left; } /* -- relbar ---------------------------------------------------------------- */ div.related { width: 100%; font-size: 90%; } div.related h3 { display: none; } div.related ul { margin: 0; padding: 0 0 0 10px; list-style: none; } div.related li { display: inline; } div.related li.right { float: right; margin-right: 5px; } /* -- sidebar --------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 10px 5px 0 10px; } div.sphinxsidebar { float: left; width: 230px; margin-left: -100%; font-size: 90%; word-wrap: break-word; overflow-wrap : break-word; } div.sphinxsidebar ul { list-style: none; } div.sphinxsidebar ul ul, div.sphinxsidebar ul.want-points { margin-left: 20px; list-style: square; } div.sphinxsidebar ul ul { margin-top: 0; margin-bottom: 0; } div.sphinxsidebar form { margin-top: 10px; } div.sphinxsidebar input { border: 1px solid #98dbcc; font-family: sans-serif; font-size: 1em; } div.sphinxsidebar #searchbox form.search { overflow: hidden; } div.sphinxsidebar #searchbox input[type="text"] { float: left; width: 80%; padding: 0.25em; box-sizing: border-box; } div.sphinxsidebar #searchbox input[type="submit"] { float: left; width: 20%; border-left: none; padding: 0.25em; box-sizing: border-box; } img { border: 0; max-width: 100%; } /* -- search page ----------------------------------------------------------- */ ul.search { margin: 10px 0 0 20px; padding: 0; } ul.search li { padding: 5px 0 5px 20px; background-image: url(file.png); background-repeat: no-repeat; background-position: 0 7px; } ul.search li a { font-weight: bold; } ul.search li p.context { color: #888; margin: 2px 0 0 30px; text-align: left; } ul.keywordmatches li.goodmatch a { font-weight: bold; } /* -- index page ------------------------------------------------------------ */ table.contentstable { width: 90%; margin-left: auto; margin-right: auto; } table.contentstable p.biglink { line-height: 150%; } a.biglink { font-size: 1.3em; } span.linkdescr { font-style: italic; padding-top: 5px; font-size: 90%; } /* -- general index --------------------------------------------------------- */ table.indextable { width: 100%; } table.indextable td { text-align: left; vertical-align: top; } table.indextable ul { margin-top: 0; margin-bottom: 0; list-style-type: none; } table.indextable > tbody > tr > td > ul { padding-left: 0em; } table.indextable tr.pcap { height: 10px; } table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2; } img.toggler { margin-right: 3px; margin-top: 3px; cursor: pointer; } div.modindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } div.genindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } /* -- domain module index --------------------------------------------------- */ table.modindextable td { padding: 2px; border-collapse: collapse; } /* -- general body styles --------------------------------------------------- */ div.body { min-width: 360px; max-width: 800px; } div.body p, div.body dd, div.body li, div.body blockquote { -moz-hyphens: auto; -ms-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } a.headerlink { visibility: hidden; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink, caption:hover > a.headerlink, p.caption:hover > a.headerlink, div.code-block-caption:hover > a.headerlink { visibility: visible; } div.body p.caption { text-align: inherit; } div.body td { text-align: left; } .first { margin-top: 0 !important; } p.rubric { margin-top: 30px; font-weight: bold; } img.align-left, figure.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } img.align-right, figure.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } img.align-center, figure.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; } img.align-default, figure.align-default, .figure.align-default { display: block; margin-left: auto; margin-right: auto; } .align-left { text-align: left; } .align-center { text-align: center; } .align-default { text-align: center; } .align-right { text-align: right; } /* -- sidebars -------------------------------------------------------------- */ div.sidebar, aside.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; padding: 7px; background-color: #ffe; width: 40%; float: right; clear: right; overflow-x: auto; } p.sidebar-title { font-weight: bold; } nav.contents, aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ nav.contents, aside.topic, div.topic { border: 1px solid #ccc; padding: 7px; margin: 10px 0 10px 0; } p.topic-title { font-size: 1.1em; font-weight: bold; margin-top: 10px; } /* -- admonitions ----------------------------------------------------------- */ div.admonition { margin-top: 10px; margin-bottom: 10px; padding: 7px; } div.admonition dt { font-weight: bold; } p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; } div.body p.centered { text-align: center; margin-top: 25px; } /* -- content of sidebars/topics/admonitions -------------------------------- */ div.sidebar > :last-child, aside.sidebar > :last-child, nav.contents > :last-child, aside.topic > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; } div.sidebar::after, aside.sidebar::after, nav.contents::after, aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { display: block; content: ''; clear: both; } /* -- tables ---------------------------------------------------------------- */ table.docutils { margin-top: 10px; margin-bottom: 10px; border: 0; border-collapse: collapse; } table.align-center { margin-left: auto; margin-right: auto; } table.align-default { margin-left: auto; margin-right: auto; } table caption span.caption-number { font-style: italic; } table caption span.caption-text { } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; border-top: 0; border-left: 0; border-right: 0; border-bottom: 1px solid #aaa; } th { text-align: left; padding-right: 5px; } table.citation { border-left: solid 1px gray; margin-left: 1px; } table.citation td { border-bottom: none; } th > :first-child, td > :first-child { margin-top: 0px; } th > :last-child, td > :last-child { margin-bottom: 0px; } /* -- figures --------------------------------------------------------------- */ div.figure, figure { margin: 0.5em; padding: 0.5em; } div.figure p.caption, figcaption { padding: 0.3em; } div.figure p.caption span.caption-number, figcaption span.caption-number { font-style: italic; } div.figure p.caption span.caption-text, figcaption span.caption-text { } /* -- field list styles ----------------------------------------------------- */ table.field-list td, table.field-list th { border: 0 !important; } .field-list ul { margin: 0; padding-left: 1em; } .field-list p { margin: 0; } .field-name { -moz-hyphens: manual; -ms-hyphens: manual; -webkit-hyphens: manual; hyphens: manual; } /* -- hlist styles ---------------------------------------------------------- */ table.hlist { margin: 1em 0; } table.hlist td { vertical-align: top; } /* -- object description styles --------------------------------------------- */ .sig { font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; } .sig-name, code.descname { background-color: transparent; font-weight: bold; } .sig-name { font-size: 1.1em; } code.descname { font-size: 1.2em; } .sig-prename, code.descclassname { background-color: transparent; } .optional { font-size: 1.3em; } .sig-paren { font-size: larger; } .sig-param.n { font-style: italic; } /* C++ specific styling */ .sig-inline.c-texpr, .sig-inline.cpp-texpr { font-family: unset; } .sig.c .k, .sig.c .kt, .sig.cpp .k, .sig.cpp .kt { color: #0033B3; } .sig.c .m, .sig.cpp .m { color: #1750EB; } .sig.c .s, .sig.c .sc, .sig.cpp .s, .sig.cpp .sc { color: #067D17; } /* -- other body styles ----------------------------------------------------- */ ol.arabic { list-style: decimal; } ol.loweralpha { list-style: lower-alpha; } ol.upperalpha { list-style: upper-alpha; } ol.lowerroman { list-style: lower-roman; } ol.upperroman { list-style: upper-roman; } :not(li) > ol > li:first-child > :first-child, :not(li) > ul > li:first-child > :first-child { margin-top: 0px; } :not(li) > ol > li:last-child > :last-child, :not(li) > ul > li:last-child > :last-child { margin-bottom: 0px; } ol.simple ol p, ol.simple ul p, ul.simple ol p, ul.simple ul p { margin-top: 0; } ol.simple > li:not(:first-child) > p, ul.simple > li:not(:first-child) > p { margin-top: 0; } ol.simple p, ul.simple p { margin-bottom: 0; } aside.footnote > span, div.citation > span { float: left; } aside.footnote > span:last-of-type, div.citation > span:last-of-type { padding-right: 0.5em; } aside.footnote > p { margin-left: 2em; } div.citation > p { margin-left: 4em; } aside.footnote > p:last-of-type, div.citation > p:last-of-type { margin-bottom: 0em; } aside.footnote > p:last-of-type:after, div.citation > p:last-of-type:after { content: ""; clear: both; } dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; } dl.field-list > dt { font-weight: bold; word-break: break-word; padding-left: 0.5em; padding-right: 5px; } dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; margin-left: 0em; margin-bottom: 0em; } dl { margin-bottom: 15px; } dd > :first-child { margin-top: 0px; } dd ul, dd table { margin-bottom: 10px; } dd { margin-top: 3px; margin-bottom: 10px; margin-left: 30px; } dl > dd:last-child, dl > dd:last-child > :last-child { margin-bottom: 0; } dt:target, span.highlighted { background-color: #fbe54e; } rect.highlighted { fill: #fbe54e; } dl.glossary dt { font-weight: bold; font-size: 1.1em; } .versionmodified { font-style: italic; } .system-message { background-color: #fda; padding: 5px; border: 3px solid red; } .footnote:target { background-color: #ffa; } .line-block { display: block; margin-top: 1em; margin-bottom: 1em; } .line-block .line-block { margin-top: 0; margin-bottom: 0; margin-left: 1.5em; } .guilabel, .menuselection { font-family: sans-serif; } .accelerator { text-decoration: underline; } .classifier { font-style: oblique; } .classifier:before { font-style: normal; margin: 0 0.5em; content: ":"; display: inline-block; } abbr, acronym { border-bottom: dotted 1px; cursor: help; } /* -- code displays --------------------------------------------------------- */ pre { overflow: auto; overflow-y: hidden; /* fixes display issues on Chrome browsers */ } pre, div[class*="highlight-"] { clear: both; } span.pre { -moz-hyphens: none; -ms-hyphens: none; -webkit-hyphens: none; hyphens: none; white-space: nowrap; } div[class*="highlight-"] { margin: 1em 0; } td.linenos pre { border: 0; background-color: transparent; color: #aaa; } table.highlighttable { display: block; } table.highlighttable tbody { display: block; } table.highlighttable tr { display: flex; } table.highlighttable td { margin: 0; padding: 0; } table.highlighttable td.linenos { padding-right: 0.5em; } table.highlighttable td.code { flex: 1; overflow: hidden; } .highlight .hll { display: block; } div.highlight pre, table.highlighttable pre { margin: 0; } div.code-block-caption + div { margin-top: 0; } div.code-block-caption { margin-top: 1em; padding: 2px 5px; font-size: small; } div.code-block-caption code { background-color: transparent; } table.highlighttable td.linenos, span.linenos, div.highlight span.gp { /* gp: Generic.Prompt */ user-select: none; -webkit-user-select: text; /* Safari fallback only */ -webkit-user-select: none; /* Chrome/Safari */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* IE10+ */ } div.code-block-caption span.caption-number { padding: 0.1em 0.3em; font-style: italic; } div.code-block-caption span.caption-text { } div.literal-block-wrapper { margin: 1em 0; } code.xref, a code { background-color: transparent; font-weight: bold; } h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { background-color: transparent; } .viewcode-link { float: right; } .viewcode-back { float: right; font-family: sans-serif; } div.viewcode-block:target { margin: -1px -10px; padding: 0 10px; } /* -- math display ---------------------------------------------------------- */ img.math { vertical-align: middle; } div.body div.math p { text-align: center; } span.eqno { float: right; } span.eqno a.headerlink { position: absolute; z-index: 1; } div.math:hover a.headerlink { visibility: visible; } /* -- printout stylesheet --------------------------------------------------- */ @media print { div.document, div.documentwrapper, div.bodywrapper { margin: 0 !important; width: 100%; } div.sphinxsidebar, div.related, div.footer, #top-link { display: none; } }././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/_static/classic.css0000664000175000017500000001031614463757445016341 0ustar00twtw/* * classic.css_t * ~~~~~~~~~~~~~ * * Sphinx stylesheet -- classic theme. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ html { /* CSS hack for macOS's scrollbar (see #1125) */ background-color: #FFFFFF; } body { font-family: sans-serif; font-size: 100%; background-color: #11303d; color: #000; margin: 0; padding: 0; } div.document { display: flex; background-color: #1c4e63; } div.documentwrapper { float: left; width: 100%; } div.bodywrapper { margin: 0 0 0 230px; } div.body { background-color: #ffffff; color: #000000; padding: 0 20px 30px 20px; } div.footer { color: #ffffff; width: 100%; padding: 9px 0 9px 0; text-align: center; font-size: 75%; } div.footer a { color: #ffffff; text-decoration: underline; } div.related { background-color: #133f52; line-height: 30px; color: #ffffff; } div.related a { color: #ffffff; } div.sphinxsidebar { } div.sphinxsidebar h3 { font-family: 'Trebuchet MS', sans-serif; color: #ffffff; font-size: 1.4em; font-weight: normal; margin: 0; padding: 0; } div.sphinxsidebar h3 a { color: #ffffff; } div.sphinxsidebar h4 { font-family: 'Trebuchet MS', sans-serif; color: #ffffff; font-size: 1.3em; font-weight: normal; margin: 5px 0 0 0; padding: 0; } div.sphinxsidebar p { color: #ffffff; } div.sphinxsidebar p.topless { margin: 5px 10px 10px 10px; } div.sphinxsidebar ul { margin: 10px; padding: 0; color: #ffffff; } div.sphinxsidebar a { color: #98dbcc; } div.sphinxsidebar input { border: 1px solid #98dbcc; font-family: sans-serif; font-size: 1em; } /* -- hyperlink styles ------------------------------------------------------ */ a { color: #355f7c; text-decoration: none; } a:visited { color: #355f7c; text-decoration: none; } a:hover { text-decoration: underline; } /* -- body styles ----------------------------------------------------------- */ div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { font-family: 'Trebuchet MS', sans-serif; background-color: #f2f2f2; font-weight: normal; color: #20435c; border-bottom: 1px solid #ccc; margin: 20px -20px 10px -20px; padding: 3px 0 3px 10px; } div.body h1 { margin-top: 0; font-size: 200%; } div.body h2 { font-size: 160%; } div.body h3 { font-size: 140%; } div.body h4 { font-size: 120%; } div.body h5 { font-size: 110%; } div.body h6 { font-size: 100%; } a.headerlink { color: #c60f0f; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } a.headerlink:hover { background-color: #c60f0f; color: white; } div.body p, div.body dd, div.body li, div.body blockquote { text-align: justify; line-height: 130%; } div.admonition p.admonition-title + p { display: inline; } div.admonition p { margin-bottom: 5px; } div.admonition pre { margin-bottom: 5px; } div.admonition ul, div.admonition ol { margin-bottom: 5px; } div.note { background-color: #eee; border: 1px solid #ccc; } div.seealso { background-color: #ffc; border: 1px solid #ff6; } nav.contents, aside.topic, div.topic { background-color: #eee; } div.warning { background-color: #ffe4e4; border: 1px solid #f66; } p.admonition-title { display: inline; } p.admonition-title:after { content: ":"; } pre { padding: 5px; background-color: unset; color: unset; line-height: 120%; border: 1px solid #ac9; border-left: none; border-right: none; } code { background-color: #ecf0f3; padding: 0 1px 0 1px; font-size: 0.95em; } th, dl.field-list > dt { background-color: #ede; } .warning code { background: #efc2c2; } .note code { background: #d6d6d6; } .viewcode-back { font-family: sans-serif; } div.viewcode-block:target { background-color: #f4debf; border-top: 1px solid #ac9; border-bottom: 1px solid #ac9; } div.code-block-caption { color: #efefef; background-color: #1c4e63; }././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344129.0 pyfuse3-3.3.0/doc/html/_static/default.css0000664000175000017500000000003414463756401016327 0ustar00twtw@import url("classic.css"); ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344129.0 pyfuse3-3.3.0/doc/html/_static/doctools.js0000664000175000017500000001057014463756401016363 0ustar00twtw/* * doctools.js * ~~~~~~~~~~~ * * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ "use strict"; const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ "TEXTAREA", "INPUT", "SELECT", "BUTTON", ]); const _ready = (callback) => { if (document.readyState !== "loading") { callback(); } else { document.addEventListener("DOMContentLoaded", callback); } }; /** * Small JavaScript module for the documentation. */ const Documentation = { init: () => { Documentation.initDomainIndexTable(); Documentation.initOnKeyListeners(); }, /** * i18n support */ TRANSLATIONS: {}, PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) gettext: (string) => { const translated = Documentation.TRANSLATIONS[string]; switch (typeof translated) { case "undefined": return string; // no translation case "string": return translated; // translation exists default: return translated[0]; // (singular, plural) translation tuple exists } }, ngettext: (singular, plural, n) => { const translated = Documentation.TRANSLATIONS[singular]; if (typeof translated !== "undefined") return translated[Documentation.PLURAL_EXPR(n)]; return n === 1 ? singular : plural; }, addTranslations: (catalog) => { Object.assign(Documentation.TRANSLATIONS, catalog.messages); Documentation.PLURAL_EXPR = new Function( "n", `return (${catalog.plural_expr})` ); Documentation.LOCALE = catalog.locale; }, /** * helper function to focus on search bar */ focusSearchBar: () => { document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** * Initialise the domain index toggle buttons */ initDomainIndexTable: () => { const toggler = (el) => { const idNumber = el.id.substr(7); const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); if (el.src.substr(-9) === "minus.png") { el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; toggledRows.forEach((el) => (el.style.display = "none")); } else { el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; toggledRows.forEach((el) => (el.style.display = "")); } }; const togglerElements = document.querySelectorAll("img.toggler"); togglerElements.forEach((el) => el.addEventListener("click", (event) => toggler(event.currentTarget)) ); togglerElements.forEach((el) => (el.style.display = "")); if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, initOnKeyListeners: () => { // only install a listener if it is really needed if ( !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS ) return; document.addEventListener("keydown", (event) => { // bail for input elements if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; // bail with special keys if (event.altKey || event.ctrlKey || event.metaKey) return; if (!event.shiftKey) { switch (event.key) { case "ArrowLeft": if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; const prevLink = document.querySelector('link[rel="prev"]'); if (prevLink && prevLink.href) { window.location.href = prevLink.href; event.preventDefault(); } break; case "ArrowRight": if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; const nextLink = document.querySelector('link[rel="next"]'); if (nextLink && nextLink.href) { window.location.href = nextLink.href; event.preventDefault(); } break; } } // some keyboard layouts may need Shift to get / switch (event.key) { case "/": if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; Documentation.focusSearchBar(); event.preventDefault(); } }); }, }; // quick alias for translations const _ = Documentation.gettext; _ready(Documentation.init); ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/_static/documentation_options.js0000664000175000017500000000064414463757445021173 0ustar00twtwvar DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), VERSION: '3.3.0', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', FILE_SUFFIX: '.html', LINK_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, ENABLE_SEARCH_SHORTCUTS: true, };././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344129.0 pyfuse3-3.3.0/doc/html/_static/file.png0000664000175000017500000000043614463756401015624 0ustar00twtwPNG  IHDRaIDATxR){l ۶f=@ :3~箄rX$AX-D ~ lj(P%8<<9:: PO&$ l~X&EW^4wQ}^ͣ i0/H/@F)Dzq+j[SU5h/oY G&Lfs|{3%U+S`AFIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344129.0 pyfuse3-3.3.0/doc/html/_static/jquery-3.6.0.js0000664000175000017500000106350414463756401016524 0ustar00twtw/*! * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { "use strict"; if ( typeof module === "object" && typeof module.exports === "object" ) { // For CommonJS and CommonJS-like environments where a proper `window` // is present, execute the factory and get jQuery. // For environments that do not have a `window` with a `document` // (such as Node.js), expose a factory as module.exports. // This accentuates the need for the creation of a real `window`. // e.g. var jQuery = require("jquery")(window); // See ticket #14549 for more info. module.exports = global.document ? factory( global, true ) : function( w ) { if ( !w.document ) { throw new Error( "jQuery requires a window with a document" ); } return factory( w ); }; } else { factory( global ); } // Pass this if window is not defined yet } )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common // enough that all such attempts are guarded in a try block. "use strict"; var arr = []; var getProto = Object.getPrototypeOf; var slice = arr.slice; var flat = arr.flat ? function( array ) { return arr.flat.call( array ); } : function( array ) { return arr.concat.apply( [], array ); }; var push = arr.push; var indexOf = arr.indexOf; var class2type = {}; var toString = class2type.toString; var hasOwn = class2type.hasOwnProperty; var fnToString = hasOwn.toString; var ObjectFunctionString = fnToString.call( Object ); var support = {}; var isFunction = function isFunction( obj ) { // Support: Chrome <=57, Firefox <=52 // In some browsers, typeof returns "function" for HTML elements // (i.e., `typeof document.createElement( "object" ) === "function"`). // We don't want to classify *any* DOM node as a function. // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 // Plus for old WebKit, typeof returns "function" for HTML collections // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function"; }; var isWindow = function isWindow( obj ) { return obj != null && obj === obj.window; }; var document = window.document; var preservedScriptAttributes = { type: true, src: true, nonce: true, noModule: true }; function DOMEval( code, node, doc ) { doc = doc || document; var i, val, script = doc.createElement( "script" ); script.text = code; if ( node ) { for ( i in preservedScriptAttributes ) { // Support: Firefox 64+, Edge 18+ // Some browsers don't support the "nonce" property on scripts. // On the other hand, just using `getAttribute` is not enough as // the `nonce` attribute is reset to an empty string whenever it // becomes browsing-context connected. // See https://github.com/whatwg/html/issues/2369 // See https://html.spec.whatwg.org/#nonce-attributes // The `node.getAttribute` check was added for the sake of // `jQuery.globalEval` so that it can fake a nonce-containing node // via an object. val = node[ i ] || node.getAttribute && node.getAttribute( i ); if ( val ) { script.setAttribute( i, val ); } } } doc.head.appendChild( script ).parentNode.removeChild( script ); } function toType( obj ) { if ( obj == null ) { return obj + ""; } // Support: Android <=2.3 only (functionish RegExp) return typeof obj === "object" || typeof obj === "function" ? class2type[ toString.call( obj ) ] || "object" : typeof obj; } /* global Symbol */ // Defining this global in .eslintrc.json would create a danger of using the global // unguarded in another place, it seems safer to define global only for this module var version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); }; jQuery.fn = jQuery.prototype = { // The current version of jQuery being used jquery: version, constructor: jQuery, // The default length of a jQuery object is 0 length: 0, toArray: function() { return slice.call( this ); }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { // Return all the elements in a clean array if ( num == null ) { return slice.call( this ); } // Return just the one element from the set return num < 0 ? this[ num + this.length ] : this[ num ]; }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems ) { // Build a new jQuery matched element set var ret = jQuery.merge( this.constructor(), elems ); // Add the old object onto the stack (as a reference) ret.prevObject = this; // Return the newly-formed element set return ret; }, // Execute a callback for every element in the matched set. each: function( callback ) { return jQuery.each( this, callback ); }, map: function( callback ) { return this.pushStack( jQuery.map( this, function( elem, i ) { return callback.call( elem, i, elem ); } ) ); }, slice: function() { return this.pushStack( slice.apply( this, arguments ) ); }, first: function() { return this.eq( 0 ); }, last: function() { return this.eq( -1 ); }, even: function() { return this.pushStack( jQuery.grep( this, function( _elem, i ) { return ( i + 1 ) % 2; } ) ); }, odd: function() { return this.pushStack( jQuery.grep( this, function( _elem, i ) { return i % 2; } ) ); }, eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); }, end: function() { return this.prevObject || this.constructor(); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, sort: arr.sort, splice: arr.splice }; jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[ 0 ] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; // Skip the boolean and the target target = arguments[ i ] || {}; i++; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !isFunction( target ) ) { target = {}; } // Extend jQuery itself if only one argument is passed if ( i === length ) { target = this; i--; } for ( ; i < length; i++ ) { // Only deal with non-null/undefined values if ( ( options = arguments[ i ] ) != null ) { // Extend the base object for ( name in options ) { copy = options[ name ]; // Prevent Object.prototype pollution // Prevent never-ending loop if ( name === "__proto__" || target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject( copy ) || ( copyIsArray = Array.isArray( copy ) ) ) ) { src = target[ name ]; // Ensure proper type for the source value if ( copyIsArray && !Array.isArray( src ) ) { clone = []; } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { clone = {}; } else { clone = src; } copyIsArray = false; // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don't bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.extend( { // Unique for each copy of jQuery on the page expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), // Assume jQuery is ready without the ready module isReady: true, error: function( msg ) { throw new Error( msg ); }, noop: function() {}, isPlainObject: function( obj ) { var proto, Ctor; // Detect obvious negatives // Use toString instead of jQuery.type to catch host objects if ( !obj || toString.call( obj ) !== "[object Object]" ) { return false; } proto = getProto( obj ); // Objects with no prototype (e.g., `Object.create( null )`) are plain if ( !proto ) { return true; } // Objects with prototype are plain iff they were constructed by a global Object function Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; }, isEmptyObject: function( obj ) { var name; for ( name in obj ) { return false; } return true; }, // Evaluates a script in a provided context; falls back to the global one // if not specified. globalEval: function( code, options, doc ) { DOMEval( code, { nonce: options && options.nonce }, doc ); }, each: function( obj, callback ) { var length, i = 0; if ( isArrayLike( obj ) ) { length = obj.length; for ( ; i < length; i++ ) { if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { break; } } } else { for ( i in obj ) { if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { break; } } } return obj; }, // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; if ( arr != null ) { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? [ arr ] : arr ); } else { push.call( ret, arr ); } } return ret; }, inArray: function( elem, arr, i ) { return arr == null ? -1 : indexOf.call( arr, elem, i ); }, // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit merge: function( first, second ) { var len = +second.length, j = 0, i = first.length; for ( ; j < len; j++ ) { first[ i++ ] = second[ j ]; } first.length = i; return first; }, grep: function( elems, callback, invert ) { var callbackInverse, matches = [], i = 0, length = elems.length, callbackExpect = !invert; // Go through the array, only saving the items // that pass the validator function for ( ; i < length; i++ ) { callbackInverse = !callback( elems[ i ], i ); if ( callbackInverse !== callbackExpect ) { matches.push( elems[ i ] ); } } return matches; }, // arg is for internal usage only map: function( elems, callback, arg ) { var length, value, i = 0, ret = []; // Go through the array, translating each of the items to their new values if ( isArrayLike( elems ) ) { length = elems.length; for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret.push( value ); } } // Go through every key on the object, } else { for ( i in elems ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret.push( value ); } } } // Flatten any nested arrays return flat( ret ); }, // A global GUID counter for objects guid: 1, // jQuery.support is not used in Core but other projects attach their // properties to it so it needs to exist. support: support } ); if ( typeof Symbol === "function" ) { jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; } // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), function( _i, name ) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); function isArrayLike( obj ) { // Support: real iOS 8.2 only (not reproducible in simulator) // `in` check used to prevent JIT error (gh-2145) // hasOwn isn't used here due to false negatives // regarding Nodelist length in IE var length = !!obj && "length" in obj && obj.length, type = toType( obj ); if ( isFunction( obj ) || isWindow( obj ) ) { return false; } return type === "array" || length === 0 || typeof length === "number" && length > 0 && ( length - 1 ) in obj; } var Sizzle = /*! * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * * Date: 2021-02-16 */ ( function( window ) { var i, support, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, // Local document vars setDocument, document, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains, // Instance-specific data expando = "sizzle" + 1 * new Date(), preferredDoc = window.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), nonnativeSelectorCache = createCache(), sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; } return 0; }, // Instance methods hasOwn = ( {} ).hasOwnProperty, arr = [], pop = arr.pop, pushNative = arr.push, push = arr.push, slice = arr.slice, // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { if ( list[ i ] === elem ) { return i; } } return -1; }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + "ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] // or strings [capture 3 or capture 4]" "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), ridentifier = new RegExp( "^" + identifier + "$" ), matchExpr = { "ID": new RegExp( "^#(" + identifier + ")" ), "CLASS": new RegExp( "^\\.(" + identifier + ")" ), "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), // For use in libraries implementing .is() // We use this for POS matching in `select` "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rhtml = /HTML$/i, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rnative = /^[^{]+\{\s*\[native \w/, // Easily-parseable/retrievable ID or TAG or CLASS selectors rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), funescape = function( escape, nonHex ) { var high = "0x" + escape.slice( 1 ) - 0x10000; return nonHex ? // Strip the backslash prefix from a non-hex escape sequence nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point // Support: IE <=11+ // For values outside the Basic Multilingual Plane (BMP), manually construct a // surrogate pair high < 0 ? String.fromCharCode( high + 0x10000 ) : String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, // CSS string/identifier serialization // https://drafts.csswg.org/cssom/#common-serializing-idioms rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, fcssescape = function( ch, asCodePoint ) { if ( asCodePoint ) { // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER if ( ch === "\0" ) { return "\uFFFD"; } // Control characters and (dependent upon position) numbers get escaped as code points return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped return "\\" + ch; }, // Used for iframes // See setDocument() // Removing the function wrapper causes a "Permission Denied" // error in IE unloadHandler = function() { setDocument(); }, inDisabledFieldset = addCombinator( function( elem ) { return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; }, { dir: "parentNode", next: "legend" } ); // Optimize for push.apply( _, NodeList ) try { push.apply( ( arr = slice.call( preferredDoc.childNodes ) ), preferredDoc.childNodes ); // Support: Android<4.0 // Detect silently failing push.apply // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { pushNative.apply( target, slice.call( els ) ); } : // Support: IE<9 // Otherwise append directly function( target, els ) { var j = target.length, i = 0; // Can't trust NodeList.length while ( ( target[ j++ ] = els[ i++ ] ) ) {} target.length = j - 1; } }; } function Sizzle( selector, context, results, seed ) { var m, i, elem, nid, match, groups, newSelector, newContext = context && context.ownerDocument, // nodeType defaults to 9, since context defaults to document nodeType = context ? context.nodeType : 9; results = results || []; // Return early from calls with invalid selector or context if ( typeof selector !== "string" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { return results; } // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { setDocument( context ); context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { // ID selector if ( ( m = match[ 1 ] ) ) { // Document context if ( nodeType === 9 ) { if ( ( elem = context.getElementById( m ) ) ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID if ( elem.id === m ) { results.push( elem ); return results; } } else { return results; } // Element context } else { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID if ( newContext && ( elem = newContext.getElementById( m ) ) && contains( context, elem ) && elem.id === m ) { results.push( elem ); return results; } } // Type selector } else if ( match[ 2 ] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); return results; } } // Take advantage of querySelectorAll if ( support.qsa && !nonnativeSelectorCache[ selector + " " ] && ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && // Support: IE 8 only // Exclude object elements ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { newSelector = selector; newContext = context; // qSA considers elements outside a scoping root when evaluating child or // descendant combinators, which is not what we want. // In such cases, we work around the behavior by prefixing every selector in the // list with an ID selector referencing the scope context. // The technique has to be used as well when a leading combinator is used // as such selectors are not recognized by querySelectorAll. // Thanks to Andrew Dupont for this technique. if ( nodeType === 1 && ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { // Expand context for sibling selectors newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; // We can use :scope instead of the ID hack if the browser // supports it & if we're not changing the context. if ( newContext !== context || !support.scope ) { // Capture the context ID, setting it first if necessary if ( ( nid = context.getAttribute( "id" ) ) ) { nid = nid.replace( rcssescape, fcssescape ); } else { context.setAttribute( "id", ( nid = expando ) ); } } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + toSelector( groups[ i ] ); } newSelector = groups.join( "," ); } try { push.apply( results, newContext.querySelectorAll( newSelector ) ); return results; } catch ( qsaError ) { nonnativeSelectorCache( selector, true ); } finally { if ( nid === expando ) { context.removeAttribute( "id" ); } } } } } // All others return select( selector.replace( rtrim, "$1" ), context, results, seed ); } /** * Create key-value caches of limited size * @returns {function(string, object)} Returns the Object data after storing it on itself with * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) * deleting the oldest entry */ function createCache() { var keys = []; function cache( key, value ) { // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { // Only keep the most recent entries delete cache[ keys.shift() ]; } return ( cache[ key + " " ] = value ); } return cache; } /** * Mark a function for special use by Sizzle * @param {Function} fn The function to mark */ function markFunction( fn ) { fn[ expando ] = true; return fn; } /** * Support testing using an element * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { var el = document.createElement( "fieldset" ); try { return !!fn( el ); } catch ( e ) { return false; } finally { // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } // release memory in IE el = null; } } /** * Adds the same handler for all of the specified attrs * @param {String} attrs Pipe-separated list of attributes * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { var arr = attrs.split( "|" ), i = arr.length; while ( i-- ) { Expr.attrHandle[ arr[ i ] ] = handler; } } /** * Checks document order of two siblings * @param {Element} a * @param {Element} b * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b */ function siblingCheck( a, b ) { var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes if ( diff ) { return diff; } // Check if b follows a if ( cur ) { while ( ( cur = cur.nextSibling ) ) { if ( cur === b ) { return -1; } } } return a ? 1 : -1; } /** * Returns a function to use in pseudos for input types * @param {String} type */ function createInputPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); return name === "input" && elem.type === type; }; } /** * Returns a function to use in pseudos for buttons * @param {String} type */ function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); return ( name === "input" || name === "button" ) && elem.type === type; }; } /** * Returns a function to use in pseudos for :enabled/:disabled * @param {Boolean} disabled true for :disabled; false for :enabled */ function createDisabledPseudo( disabled ) { // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable return function( elem ) { // Only certain elements can match :enabled or :disabled // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled if ( "form" in elem ) { // Check for inherited disabledness on relevant non-disabled elements: // * listed form-associated elements in a disabled fieldset // https://html.spec.whatwg.org/multipage/forms.html#category-listed // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled // * option elements in a disabled optgroup // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled // All such elements have a "form" property. if ( elem.parentNode && elem.disabled === false ) { // Option elements defer to a parent optgroup if present if ( "label" in elem ) { if ( "label" in elem.parentNode ) { return elem.parentNode.disabled === disabled; } else { return elem.disabled === disabled; } } // Support: IE 6 - 11 // Use the isDisabled shortcut property to check for disabled fieldset ancestors return elem.isDisabled === disabled || // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property. // Some victims get caught in our net (label, legend, menu, track), but it shouldn't // even exist on them, let alone have a boolean value. } else if ( "label" in elem ) { return elem.disabled === disabled; } // Remaining elements are neither :enabled nor :disabled return false; }; } /** * Returns a function to use in pseudos for positionals * @param {Function} fn */ function createPositionalPseudo( fn ) { return markFunction( function( argument ) { argument = +argument; return markFunction( function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { if ( seed[ ( j = matchIndexes[ i ] ) ] ) { seed[ j ] = !( matches[ j ] = seed[ j ] ); } } } ); } ); } /** * Checks a node for validity as a Sizzle context * @param {Element|Object=} context * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value */ function testContext( context ) { return context && typeof context.getElementsByTagName !== "undefined" && context; } // Expose support vars for convenience support = Sizzle.support = {}; /** * Detects XML nodes * @param {Element|Object} elem An element or a document * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { var namespace = elem && elem.namespaceURI, docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes // https://bugs.jquery.com/ticket/4833 return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); }; /** * Sets document-related variables once based on the current document * @param {Element|Object} [doc] An element or document object to use to set the document * @returns {Object} Returns the current document */ setDocument = Sizzle.setDocument = function( node ) { var hasCompare, subWindow, doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } // Update global variables document = doc; docElem = document.documentElement; documentIsHTML = !isXML( document ); // Support: IE 9 - 11+, Edge 12 - 18+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq if ( preferredDoc != document && ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { subWindow.addEventListener( "unload", unloadHandler, false ); // Support: IE 9 - 10 only } else if ( subWindow.attachEvent ) { subWindow.attachEvent( "onunload", unloadHandler ); } } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, // Safari 4 - 5 only, Opera <=11.6 - 12.x only // IE/Edge & older browsers don't support the :scope pseudo-class. // Support: Safari 6.0 only // Safari 6.0 supports :scope but it's an alias of :root there. support.scope = assert( function( el ) { docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); return typeof el.querySelectorAll !== "undefined" && !el.querySelectorAll( ":scope fieldset div" ).length; } ); /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) support.attributes = assert( function( el ) { el.className = "i"; return !el.getAttribute( "className" ); } ); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements support.getElementsByTagName = assert( function( el ) { el.appendChild( document.createComment( "" ) ); return !el.getElementsByTagName( "*" ).length; } ); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); // Support: IE<10 // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test support.getById = assert( function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; } ); // ID filter and find if ( support.getById ) { Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { return elem.getAttribute( "id" ) === attrId; }; }; Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode( "id" ); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); if ( elem ) { // Verify the id attribute node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; while ( ( elem = elems[ i++ ] ) ) { node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } } } return []; } }; } // Tag Expr.find[ "TAG" ] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); // DocumentFragment nodes don't have gEBTN } else if ( support.qsa ) { return context.querySelectorAll( tag ); } } : function( tag, context ) { var elem, tmp = [], i = 0, // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { while ( ( elem = results[ i++ ] ) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } } return tmp; } return results; }; // Class Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } }; /* QSA/matchesSelector ---------------------------------------------------------------------- */ // QSA and matchesSelector support // matchesSelector(:active) reports false when true (IE9/Opera 11.5) rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21) // We allow this because of a bug in IE8/9 that throws an error // whenever `document.activeElement` is accessed on an iframe // So, we allow :focus to pass through QSA all the time to avoid the IE error // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { // Build QSA regex // Regex strategy adopted from Diego Perini assert( function( el ) { var input; // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, // since its presence should be enough // https://bugs.jquery.com/ticket/12359 docElem.appendChild( el ).innerHTML = "" + ""; // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly if ( !el.querySelectorAll( "[selected]" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { rbuggyQSA.push( "~=" ); } // Support: IE 11+, Edge 15 - 18+ // IE 11/Edge don't find elements on a `[name='']` query in some cases. // Adding a temporary attribute to the document before the selection works // around the issue. // Interestingly, IE 10 & older don't seem to have the issue. input = document.createElement( "input" ); input.setAttribute( "name", "" ); el.appendChild( input ); if ( !el.querySelectorAll( "[name='']" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + "*(?:''|\"\")" ); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests if ( !el.querySelectorAll( ":checked" ).length ) { rbuggyQSA.push( ":checked" ); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { rbuggyQSA.push( ".#.+[+~]" ); } // Support: Firefox <=3.6 - 5 only // Old Firefox doesn't throw on a badly-escaped identifier. el.querySelectorAll( "\\\f" ); rbuggyQSA.push( "[\\r\\n\\f]" ); } ); assert( function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment var input = document.createElement( "input" ); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute if ( el.querySelectorAll( "[name=d]" ).length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos el.querySelectorAll( "*,:x" ); rbuggyQSA.push( ",.*:" ); } ); } if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector ) ) ) ) { assert( function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); // This should fail with an exception // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); } ); } rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); /* Contains ---------------------------------------------------------------------- */ hasCompare = rnative.test( docElem.compareDocumentPosition ); // Element contains another // Purposefully self-exclusive // As in, an element does not contain itself contains = hasCompare || rnative.test( docElem.contains ) ? function( a, b ) { var adown = a.nodeType === 9 ? a.documentElement : a, bup = b && b.parentNode; return a === bup || !!( bup && bup.nodeType === 1 && ( adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 ) ); } : function( a, b ) { if ( b ) { while ( ( b = b.parentNode ) ) { if ( b === a ) { return true; } } } return false; }; /* Sorting ---------------------------------------------------------------------- */ // Document order sorting sortOrder = hasCompare ? function( a, b ) { // Flag for duplicate removal if ( a === b ) { hasDuplicate = true; return 0; } // Sort on method existence if only one input has compareDocumentPosition var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; if ( compare ) { return compare; } // Calculate position if both inputs belong to the same document // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected 1; // Disconnected nodes if ( compare & 1 || ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { // Choose the first element that is related to our preferred document // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq if ( a == document || a.ownerDocument == preferredDoc && contains( preferredDoc, a ) ) { return -1; } // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq if ( b == document || b.ownerDocument == preferredDoc && contains( preferredDoc, b ) ) { return 1; } // Maintain original order return sortInput ? ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; } return compare & 4 ? -1 : 1; } : function( a, b ) { // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; return 0; } var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [ a ], bp = [ b ]; // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. /* eslint-disable eqeqeq */ return a == document ? -1 : b == document ? 1 : /* eslint-enable eqeqeq */ aup ? -1 : bup ? 1 : sortInput ? ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; // If the nodes are siblings, we can do a quick check } else if ( aup === bup ) { return siblingCheck( a, b ); } // Otherwise we need full lists of their ancestors for comparison cur = a; while ( ( cur = cur.parentNode ) ) { ap.unshift( cur ); } cur = b; while ( ( cur = cur.parentNode ) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy while ( ap[ i ] === bp[ i ] ) { i++; } return i ? // Do a sibling check if the nodes have a common ancestor siblingCheck( ap[ i ], bp[ i ] ) : // Otherwise nodes in our document sort first // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. /* eslint-disable eqeqeq */ ap[ i ] == preferredDoc ? -1 : bp[ i ] == preferredDoc ? 1 : /* eslint-enable eqeqeq */ 0; }; return document; }; Sizzle.matches = function( expr, elements ) { return Sizzle( expr, null, null, elements ); }; Sizzle.matchesSelector = function( elem, expr ) { setDocument( elem ); if ( support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[ expr + " " ] && ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { try { var ret = matches.call( elem, expr ); // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document // fragment in IE 9 elem.document && elem.document.nodeType !== 11 ) { return ret; } } catch ( e ) { nonnativeSelectorCache( expr, true ); } } return Sizzle( expr, document, null, [ elem ] ).length > 0; }; Sizzle.contains = function( context, elem ) { // Set document vars if needed // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq if ( ( context.ownerDocument || context ) != document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { // Set document vars if needed // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq if ( ( elem.ownerDocument || elem ) != document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : undefined; return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { return ( sel + "" ).replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { throw new Error( "Syntax error, unrecognized expression: " + msg ); }; /** * Document sorting and removing duplicates * @param {ArrayLike} results */ Sizzle.uniqueSort = function( results ) { var elem, duplicates = [], j = 0, i = 0; // Unless we *know* we can detect duplicates, assume their presence hasDuplicate = !support.detectDuplicates; sortInput = !support.sortStable && results.slice( 0 ); results.sort( sortOrder ); if ( hasDuplicate ) { while ( ( elem = results[ i++ ] ) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } } while ( j-- ) { results.splice( duplicates[ j ], 1 ); } } // Clear input after sorting to release objects // See https://github.com/jquery/sizzle/pull/225 sortInput = null; return results; }; /** * Utility function for retrieving the text value of an array of DOM nodes * @param {Array|Element} elem */ getText = Sizzle.getText = function( elem ) { var node, ret = "", i = 0, nodeType = elem.nodeType; if ( !nodeType ) { // If no nodeType, this is expected to be an array while ( ( node = elem[ i++ ] ) ) { // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); } } } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } // Do not include comment or processing instruction nodes return ret; }; Expr = Sizzle.selectors = { // Can be adjusted by the user cacheLength: 50, createPseudo: markFunction, match: matchExpr, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: true }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: true }, "~": { dir: "previousSibling" } }, preFilter: { "ATTR": function( match ) { match[ 1 ] = match[ 1 ].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" ).replace( runescape, funescape ); if ( match[ 2 ] === "~=" ) { match[ 3 ] = " " + match[ 3 ] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 4 xn-component of xn+y argument ([+-]?\d*n|) 5 sign of xn-component 6 x of xn-component 7 sign of y-component 8 y of y-component */ match[ 1 ] = match[ 1 ].toLowerCase(); if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { // nth-* requires argument if ( !match[ 3 ] ) { Sizzle.error( match[ 0 ] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 match[ 4 ] = +( match[ 4 ] ? match[ 5 ] + ( match[ 6 ] || 1 ) : 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); // other types prohibit arguments } else if ( match[ 3 ] ) { Sizzle.error( match[ 0 ] ); } return match; }, "PSEUDO": function( match ) { var excess, unquoted = !match[ 6 ] && match[ 2 ]; if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { return null; } // Accept quoted arguments as-is if ( match[ 3 ] ) { match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && // Get excess from tokenize (recursively) ( excess = tokenize( unquoted, true ) ) && // advance to the next closing parenthesis ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { // excess is a negative index match[ 0 ] = match[ 0 ].slice( 0, excess ); match[ 2 ] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) return match.slice( 0, 3 ); } }, filter: { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? function() { return true; } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; }, "CLASS": function( className ) { var pattern = classCache[ className + " " ]; return pattern || ( pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( className, function( elem ) { return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute( "class" ) || "" ); } ); }, "ATTR": function( name, operator, check ) { return function( elem ) { var result = Sizzle.attr( elem, name ); if ( result == null ) { return operator === "!="; } if ( !operator ) { return true; } result += ""; /* eslint-disable max-len */ return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "$=" ? check && result.slice( -check.length ) === check : operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; /* eslint-enable max-len */ }; }, "CHILD": function( type, what, _argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; return first === 1 && last === 0 ? // Shortcut for :nth-*(n) function( elem ) { return !!elem.parentNode; } : function( elem, _context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = false; if ( parent ) { // :(first|last|only)-(child|of-type) if ( simple ) { while ( dir ) { node = elem; while ( ( node = node[ dir ] ) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { return false; } } // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } return true; } start = [ forward ? parent.firstChild : parent.lastChild ]; // non-xml :nth-child(...) stores cache data on `parent` if ( forward && useCache ) { // Seek `elem` from a previously-cached index // ...in a gzip-friendly way node = parent; outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; while ( ( node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start ( diff = nodeIndex = 0 ) || start.pop() ) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; break; } } } else { // Use previously-cached element index if available if ( useCache ) { // ...in a gzip-friendly way node = elem; outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex; } // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { // Use the same loop as above to seek `elem` from the start while ( ( node = ++nodeIndex && node && node[ dir ] || ( diff = nodeIndex = 0 ) || start.pop() ) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { // Cache the index of each encountered element if ( useCache ) { outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || ( outerCache[ node.uniqueID ] = {} ); uniqueCache[ type ] = [ dirruns, diff ]; } if ( node === elem ) { break; } } } } } // Incorporate the offset, then check against cycle size diff -= last; return diff === first || ( diff % first === 0 && diff / first >= 0 ); } }; }, "PSEUDO": function( pseudo, argument ) { // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters // Remember that setFilters inherits from pseudos var args, fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || Sizzle.error( "unsupported pseudo: " + pseudo ); // The user may use createPseudo to indicate that // arguments are needed to create the filter function // just as Sizzle does if ( fn[ expando ] ) { return fn( argument ); } // But maintain support for old signatures if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? markFunction( function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { idx = indexOf( seed, matched[ i ] ); seed[ idx ] = !( matches[ idx ] = matched[ i ] ); } } ) : function( elem ) { return fn( elem, 0, args ); }; } return fn; } }, pseudos: { // Potentially complex pseudos "not": markFunction( function( selector ) { // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators var input = [], results = [], matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? markFunction( function( seed, matches, _context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { if ( ( elem = unmatched[ i ] ) ) { seed[ i ] = !( matches[ i ] = elem ); } } } ) : function( elem, _context, xml ) { input[ 0 ] = elem; matcher( input, null, xml, results ); // Don't keep the element (issue #299) input[ 0 ] = null; return !results.pop(); }; } ), "has": markFunction( function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; } ), "contains": markFunction( function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; } ), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value // being equal to the identifier C, // or beginning with the identifier C immediately followed by "-". // The matching of C against the element's language value is performed case-insensitively. // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { // lang value must be a valid identifier if ( !ridentifier.test( lang || "" ) ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { if ( ( elemLang = documentIsHTML ? elem.lang : elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); return false; }; } ), // Miscellaneous "target": function( elem ) { var hash = window.location && window.location.hash; return hash && hash.slice( 1 ) === elem.id; }, "root": function( elem ) { return elem === docElem; }, "focus": function( elem ) { return elem === document.activeElement && ( !document.hasFocus || document.hasFocus() ) && !!( elem.type || elem.href || ~elem.tabIndex ); }, // Boolean properties "enabled": createDisabledPseudo( false ), "disabled": createDisabledPseudo( true ), "checked": function( elem ) { // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); return ( nodeName === "input" && !!elem.checked ) || ( nodeName === "option" && !!elem.selected ); }, "selected": function( elem ) { // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } return elem.selected === true; }, // Contents "empty": function( elem ) { // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) // nodeType < 6 works because attributes (2) do not appear as children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { if ( elem.nodeType < 6 ) { return false; } } return true; }, "parent": function( elem ) { return !Expr.pseudos[ "empty" ]( elem ); }, // Element/input types "header": function( elem ) { return rheader.test( elem.nodeName ); }, "input": function( elem ) { return rinputs.test( elem.nodeName ); }, "button": function( elem ) { var name = elem.nodeName.toLowerCase(); return name === "input" && elem.type === "button" || name === "button"; }, "text": function( elem ) { var attr; return elem.nodeName.toLowerCase() === "input" && elem.type === "text" && // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" ( ( attr = elem.getAttribute( "type" ) ) == null || attr.toLowerCase() === "text" ); }, // Position-in-collection "first": createPositionalPseudo( function() { return [ 0 ]; } ), "last": createPositionalPseudo( function( _matchIndexes, length ) { return [ length - 1 ]; } ), "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; } ), "even": createPositionalPseudo( function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; } ), "odd": createPositionalPseudo( function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; } ), "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument > length ? length : argument; for ( ; --i >= 0; ) { matchIndexes.push( i ); } return matchIndexes; } ), "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; } ) } }; Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { Expr.pseudos[ i ] = createInputPseudo( i ); } for ( i in { submit: true, reset: true } ) { Expr.pseudos[ i ] = createButtonPseudo( i ); } // Easy API for creating new setFilters function setFilters() {} setFilters.prototype = Expr.filters = Expr.pseudos; Expr.setFilters = new setFilters(); tokenize = Sizzle.tokenize = function( selector, parseOnly ) { var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[ selector + " " ]; if ( cached ) { return parseOnly ? 0 : cached.slice( 0 ); } soFar = selector; groups = []; preFilters = Expr.preFilter; while ( soFar ) { // Comma and first run if ( !matched || ( match = rcomma.exec( soFar ) ) ) { if ( match ) { // Don't consume trailing commas as valid soFar = soFar.slice( match[ 0 ].length ) || soFar; } groups.push( ( tokens = [] ) ); } matched = false; // Combinators if ( ( match = rcombinators.exec( soFar ) ) ) { matched = match.shift(); tokens.push( { value: matched, // Cast descendant combinators to space type: match[ 0 ].replace( rtrim, " " ) } ); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || ( match = preFilters[ type ]( match ) ) ) ) { matched = match.shift(); tokens.push( { value: matched, type: type, matches: match } ); soFar = soFar.slice( matched.length ); } } if ( !matched ) { break; } } // Return the length of the invalid excess // if we're just parsing // Otherwise, throw an error or return tokens return parseOnly ? soFar.length : soFar ? Sizzle.error( selector ) : // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; function toSelector( tokens ) { var i = 0, len = tokens.length, selector = ""; for ( ; i < len; i++ ) { selector += tokens[ i ].value; } return selector; } function addCombinator( matcher, combinator, base ) { var dir = combinator.dir, skip = combinator.next, key = skip || dir, checkNonElements = base && key === "parentNode", doneName = done++; return combinator.first ? // Check against closest ancestor/preceding element function( elem, context, xml ) { while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } } return false; } : // Check against all ancestor/preceding elements function( elem, context, xml ) { var oldCache, uniqueCache, outerCache, newCache = [ dirruns, doneName ]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; } } } } else { while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { outerCache = elem[ expando ] || ( elem[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ elem.uniqueID ] || ( outerCache[ elem.uniqueID ] = {} ); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; } else if ( ( oldCache = uniqueCache[ key ] ) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements return ( newCache[ 2 ] = oldCache[ 2 ] ); } else { // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { return true; } } } } } return false; }; } function elementMatcher( matchers ) { return matchers.length > 1 ? function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { if ( !matchers[ i ]( elem, context, xml ) ) { return false; } } return true; } : matchers[ 0 ]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { Sizzle( selector, contexts[ i ], results ); } return results; } function condense( unmatched, map, filter, context, xml ) { var elem, newUnmatched = [], i = 0, len = unmatched.length, mapped = map != null; for ( ; i < len; i++ ) { if ( ( elem = unmatched[ i ] ) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { map.push( i ); } } } } return newUnmatched; } function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { if ( postFilter && !postFilter[ expando ] ) { postFilter = setMatcher( postFilter ); } if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } return markFunction( function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? condense( elems, preMap, preFilter, context, xml ) : elems, matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? // ...intermediate processing is necessary [] : // ...otherwise use results directly results : matcherIn; // Find primary matches if ( matcher ) { matcher( matcherIn, matcherOut, context, xml ); } // Apply postFilter if ( postFilter ) { temp = condense( matcherOut, postMap ); postFilter( temp, [], context, xml ); // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { if ( ( elem = temp[ i ] ) ) { matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); } } } if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { if ( ( elem = matcherOut[ i ] ) ) { // Restore matcherIn since elem is not yet a final match temp.push( ( matcherIn[ i ] = elem ) ); } } postFinder( null, ( matcherOut = [] ), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { if ( ( elem = matcherOut[ i ] ) && ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { seed[ temp ] = !( results[ temp ] = elem ); } } } // Add elements to results, through postFinder if defined } else { matcherOut = condense( matcherOut === results ? matcherOut.splice( preexisting, matcherOut.length ) : matcherOut ); if ( postFinder ) { postFinder( null, results, matcherOut, xml ); } else { push.apply( results, matcherOut ); } } } ); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[ tokens[ 0 ].type ], implicitRelative = leadingRelative || Expr.relative[ " " ], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) matchContext = addCombinator( function( elem ) { return elem === checkContext; }, implicitRelative, true ), matchAnyContext = addCombinator( function( elem ) { return indexOf( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( ( checkContext = context ).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; } else { matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { if ( Expr.relative[ tokens[ j ].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*` tokens .slice( 0, i - 1 ) .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), j < len && toSelector( tokens ) ); } matchers.push( matcher ); } } return elementMatcher( matchers ); } function matcherFromGroupMatchers( elementMatchers, setMatchers ) { var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function( seed, context, xml, results, outermost ) { var elem, j, matcher, matchedCount = 0, i = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, // We must always have either seed elements or outermost context elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), // Use integer dirruns iff this is the outermost matcher dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), len = elems.length; if ( outermost ) { // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq outermostContext = context == document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { if ( byElement && elem ) { j = 0; // Support: IE 11+, Edge 17 - 18+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing // two documents; shallow comparisons work. // eslint-disable-next-line eqeqeq if ( !context && elem.ownerDocument != document ) { setDocument( elem ); xml = !documentIsHTML; } while ( ( matcher = elementMatchers[ j++ ] ) ) { if ( matcher( elem, context || document, xml ) ) { results.push( elem ); break; } } if ( outermost ) { dirruns = dirrunsUnique; } } // Track unmatched elements for set filters if ( bySet ) { // They will have gone through all possible matchers if ( ( elem = !matcher && elem ) ) { matchedCount--; } // Lengthen the array for every element, matched or not if ( seed ) { unmatched.push( elem ); } } } // `i` is now the count of elements visited above, and adding it to `matchedCount` // makes the latter nonnegative. matchedCount += i; // Apply set filters to unmatched elements // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` // equals `i`), unless we didn't visit _any_ elements in the above loop because we have // no element matchers and no seed. // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that // case, which will result in a "00" `matchedCount` that differs from `i` but is also // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; while ( ( matcher = setMatchers[ j++ ] ) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { if ( !( unmatched[ i ] || setMatched[ i ] ) ) { setMatched[ i ] = pop.call( results ); } } } // Discard index placeholder values to get only actual matches setMatched = condense( setMatched ); } // Add matches to results push.apply( results, setMatched ); // Seedless set matches succeeding multiple successful matchers stipulate sorting if ( outermost && !seed && setMatched.length > 0 && ( matchedCount + setMatchers.length ) > 1 ) { Sizzle.uniqueSort( results ); } } // Override manipulation of globals by nested matchers if ( outermost ) { dirruns = dirrunsUnique; outermostContext = contextBackup; } return unmatched; }; return bySet ? markFunction( superMatcher ) : superMatcher; } compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { var i, setMatchers = [], elementMatchers = [], cached = compilerCache[ selector + " " ]; if ( !cached ) { // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { cached = matcherFromTokens( match[ i ] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { elementMatchers.push( cached ); } } // Cache the compiled function cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); // Save selector and tokenization cached.selector = selector; } return cached; }; /** * A low-level selection function that works with Sizzle's compiled * selector functions * @param {String|Function} selector A selector or a pre-compiled * selector function built with Sizzle.compile * @param {Element} context * @param {Array} [results] * @param {Array} [seed] A set of elements to match against */ select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, match = !seed && tokenize( ( selector = compiled.selector || selector ) ); results = results || []; // Try to minimize operations if there is only one selector in the list and no seed // (the latter of which guarantees us context) if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID tokens = match[ 0 ] = match[ 0 ].slice( 0 ); if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { context = ( Expr.find[ "ID" ]( token.matches[ 0 ] .replace( runescape, funescape ), context ) || [] )[ 0 ]; if ( !context ) { return results; // Precompiled matchers will still verify ancestry, so step up a level } else if ( compiled ) { context = context.parentNode; } selector = selector.slice( tokens.shift().value.length ); } // Fetch a seed set for right-to-left matching i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; while ( i-- ) { token = tokens[ i ]; // Abort if we hit a combinator if ( Expr.relative[ ( type = token.type ) ] ) { break; } if ( ( find = Expr.find[ type ] ) ) { // Search, expanding context for leading sibling combinators if ( ( seed = find( token.matches[ 0 ].replace( runescape, funescape ), rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || context ) ) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); selector = seed.length && toSelector( tokens ); if ( !selector ) { push.apply( results, seed ); return results; } break; } } } } // Compile and execute a filtering function if one is not provided // Provide `match` to avoid retokenization if we modified the selector above ( compiled || compile( selector, match ) )( seed, context, !documentIsHTML, results, !context || rsibling.test( selector ) && testContext( context.parentNode ) || context ); return results; }; // One-time assignments // Sort stability support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; // Initialize against the default document setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* support.sortDetached = assert( function( el ) { // Should return 1, but returns 4 (following) return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; } ); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx if ( !assert( function( el ) { el.innerHTML = ""; return el.firstChild.getAttribute( "href" ) === "#"; } ) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } } ); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") if ( !support.attributes || !assert( function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; } ) ) { addHandle( "value", function( elem, _name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } } ); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies if ( !assert( function( el ) { return el.getAttribute( "disabled" ) == null; } ) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; } } ); } return Sizzle; } )( window ); jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; // Deprecated jQuery.expr[ ":" ] = jQuery.expr.pseudos; jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; jQuery.escapeSelector = Sizzle.escape; var dir = function( elem, dir, until ) { var matched = [], truncate = until !== undefined; while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { if ( elem.nodeType === 1 ) { if ( truncate && jQuery( elem ).is( until ) ) { break; } matched.push( elem ); } } return matched; }; var siblings = function( n, elem ) { var matched = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 && n !== elem ) { matched.push( n ); } } return matched; }; var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); } var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); // Implement the identical functionality for filter and not function winnow( elements, qualifier, not ) { if ( isFunction( qualifier ) ) { return jQuery.grep( elements, function( elem, i ) { return !!qualifier.call( elem, i, elem ) !== not; } ); } // Single element if ( qualifier.nodeType ) { return jQuery.grep( elements, function( elem ) { return ( elem === qualifier ) !== not; } ); } // Arraylike of elements (jQuery, arguments, Array) if ( typeof qualifier !== "string" ) { return jQuery.grep( elements, function( elem ) { return ( indexOf.call( qualifier, elem ) > -1 ) !== not; } ); } // Filtered directly for both simple and complex selectors return jQuery.filter( qualifier, elements, not ); } jQuery.filter = function( expr, elems, not ) { var elem = elems[ 0 ]; if ( not ) { expr = ":not(" + expr + ")"; } if ( elems.length === 1 && elem.nodeType === 1 ) { return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; } return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { return elem.nodeType === 1; } ) ); }; jQuery.fn.extend( { find: function( selector ) { var i, ret, len = this.length, self = this; if ( typeof selector !== "string" ) { return this.pushStack( jQuery( selector ).filter( function() { for ( i = 0; i < len; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } } } ) ); } ret = this.pushStack( [] ); for ( i = 0; i < len; i++ ) { jQuery.find( selector, self[ i ], ret ); } return len > 1 ? jQuery.uniqueSort( ret ) : ret; }, filter: function( selector ) { return this.pushStack( winnow( this, selector || [], false ) ); }, not: function( selector ) { return this.pushStack( winnow( this, selector || [], true ) ); }, is: function( selector ) { return !!winnow( this, // If this is a positional/relative selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". typeof selector === "string" && rneedsContext.test( selector ) ? jQuery( selector ) : selector || [], false ).length; } } ); // Initialize a jQuery object // A central reference to the root jQuery(document) var rootjQuery, // A simple way to check for HTML strings // Prioritize #id over to avoid XSS via location.hash (#9521) // Strict HTML recognition (#11290: must start with <) // Shortcut simple #id case for speed rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, init = jQuery.fn.init = function( selector, context, root ) { var match, elem; // HANDLE: $(""), $(null), $(undefined), $(false) if ( !selector ) { return this; } // Method init() accepts an alternate rootjQuery // so migrate can support jQuery.sub (gh-2101) root = root || rootjQuery; // Handle HTML strings if ( typeof selector === "string" ) { if ( selector[ 0 ] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { // Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; } else { match = rquickExpr.exec( selector ); } // Match html or make sure no context is specified for #id if ( match && ( match[ 1 ] || !context ) ) { // HANDLE: $(html) -> $(array) if ( match[ 1 ] ) { context = context instanceof jQuery ? context[ 0 ] : context; // Option to run scripts is true for back-compat // Intentionally let the error be thrown if parseHTML is not present jQuery.merge( this, jQuery.parseHTML( match[ 1 ], context && context.nodeType ? context.ownerDocument || context : document, true ) ); // HANDLE: $(html, props) if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { for ( match in context ) { // Properties of context are called as methods if possible if ( isFunction( this[ match ] ) ) { this[ match ]( context[ match ] ); // ...and otherwise set as attributes } else { this.attr( match, context[ match ] ); } } } return this; // HANDLE: $(#id) } else { elem = document.getElementById( match[ 2 ] ); if ( elem ) { // Inject the element directly into the jQuery object this[ 0 ] = elem; this.length = 1; } return this; } // HANDLE: $(expr, $(...)) } else if ( !context || context.jquery ) { return ( context || root ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) } else { return this.constructor( context ).find( selector ); } // HANDLE: $(DOMElement) } else if ( selector.nodeType ) { this[ 0 ] = selector; this.length = 1; return this; // HANDLE: $(function) // Shortcut for document ready } else if ( isFunction( selector ) ) { return root.ready !== undefined ? root.ready( selector ) : // Execute immediately if ready is not present selector( jQuery ); } return jQuery.makeArray( selector, this ); }; // Give the init function the jQuery prototype for later instantiation init.prototype = jQuery.fn; // Initialize central reference rootjQuery = jQuery( document ); var rparentsprev = /^(?:parents|prev(?:Until|All))/, // Methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, contents: true, next: true, prev: true }; jQuery.fn.extend( { has: function( target ) { var targets = jQuery( target, this ), l = targets.length; return this.filter( function() { var i = 0; for ( ; i < l; i++ ) { if ( jQuery.contains( this, targets[ i ] ) ) { return true; } } } ); }, closest: function( selectors, context ) { var cur, i = 0, l = this.length, matched = [], targets = typeof selectors !== "string" && jQuery( selectors ); // Positional selectors never match, since there's no _selection_ context if ( !rneedsContext.test( selectors ) ) { for ( ; i < l; i++ ) { for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { // Always skip document fragments if ( cur.nodeType < 11 && ( targets ? targets.index( cur ) > -1 : // Don't pass non-elements to Sizzle cur.nodeType === 1 && jQuery.find.matchesSelector( cur, selectors ) ) ) { matched.push( cur ); break; } } } } return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); }, // Determine the position of an element within the set index: function( elem ) { // No argument, return index in parent if ( !elem ) { return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; } // Index in selector if ( typeof elem === "string" ) { return indexOf.call( jQuery( elem ), this[ 0 ] ); } // Locate the position of the desired element return indexOf.call( this, // If it receives a jQuery object, the first element is used elem.jquery ? elem[ 0 ] : elem ); }, add: function( selector, context ) { return this.pushStack( jQuery.uniqueSort( jQuery.merge( this.get(), jQuery( selector, context ) ) ) ); }, addBack: function( selector ) { return this.add( selector == null ? this.prevObject : this.prevObject.filter( selector ) ); } } ); function sibling( cur, dir ) { while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} return cur; } jQuery.each( { parent: function( elem ) { var parent = elem.parentNode; return parent && parent.nodeType !== 11 ? parent : null; }, parents: function( elem ) { return dir( elem, "parentNode" ); }, parentsUntil: function( elem, _i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { return sibling( elem, "nextSibling" ); }, prev: function( elem ) { return sibling( elem, "previousSibling" ); }, nextAll: function( elem ) { return dir( elem, "nextSibling" ); }, prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, nextUntil: function( elem, _i, until ) { return dir( elem, "nextSibling", until ); }, prevUntil: function( elem, _i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { return siblings( ( elem.parentNode || {} ).firstChild, elem ); }, children: function( elem ) { return siblings( elem.firstChild ); }, contents: function( elem ) { if ( elem.contentDocument != null && // Support: IE 11+ // elements with no `data` attribute has an object // `contentDocument` with a `null` prototype. getProto( elem.contentDocument ) ) { return elem.contentDocument; } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only // Treat the template element as a regular one in browsers that // don't support it. if ( nodeName( elem, "template" ) ) { elem = elem.content || elem; } return jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var matched = jQuery.map( this, fn, until ); if ( name.slice( -5 ) !== "Until" ) { selector = until; } if ( selector && typeof selector === "string" ) { matched = jQuery.filter( selector, matched ); } if ( this.length > 1 ) { // Remove duplicates if ( !guaranteedUnique[ name ] ) { jQuery.uniqueSort( matched ); } // Reverse order for parents* and prev-derivatives if ( rparentsprev.test( name ) ) { matched.reverse(); } } return this.pushStack( matched ); }; } ); var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); // Convert String-formatted options into Object-formatted ones function createOptions( options ) { var object = {}; jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { object[ flag ] = true; } ); return object; } /* * Create a callback list using the following parameters: * * options: an optional list of space-separated options that will change how * the callback list behaves or a more traditional option object * * By default a callback list will act like an event callback list and can be * "fired" multiple times. * * Possible options: * * once: will ensure the callback list can only be fired once (like a Deferred) * * memory: will keep track of previous values and will call any callback added * after the list has been fired right away with the latest "memorized" * values (like a Deferred) * * unique: will ensure a callback can only be added once (no duplicate in the list) * * stopOnFalse: interrupt callings when a callback returns false * */ jQuery.Callbacks = function( options ) { // Convert options from String-formatted to Object-formatted if needed // (we check in cache first) options = typeof options === "string" ? createOptions( options ) : jQuery.extend( {}, options ); var // Flag to know if list is currently firing firing, // Last fire value for non-forgettable lists memory, // Flag to know if list was already fired fired, // Flag to prevent firing locked, // Actual callback list list = [], // Queue of execution data for repeatable lists queue = [], // Index of currently firing callback (modified by add/remove as needed) firingIndex = -1, // Fire callbacks fire = function() { // Enforce single-firing locked = locked || options.once; // Execute callbacks for all pending executions, // respecting firingIndex overrides and runtime changes fired = firing = true; for ( ; queue.length; firingIndex = -1 ) { memory = queue.shift(); while ( ++firingIndex < list.length ) { // Run callback and check for early termination if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && options.stopOnFalse ) { // Jump to end and forget the data so .add doesn't re-fire firingIndex = list.length; memory = false; } } } // Forget the data if we're done with it if ( !options.memory ) { memory = false; } firing = false; // Clean up if we're done firing for good if ( locked ) { // Keep an empty list if we have data for future add calls if ( memory ) { list = []; // Otherwise, this object is spent } else { list = ""; } } }, // Actual Callbacks object self = { // Add a callback or a collection of callbacks to the list add: function() { if ( list ) { // If we have memory from a past run, we should fire after adding if ( memory && !firing ) { firingIndex = list.length - 1; queue.push( memory ); } ( function add( args ) { jQuery.each( args, function( _, arg ) { if ( isFunction( arg ) ) { if ( !options.unique || !self.has( arg ) ) { list.push( arg ); } } else if ( arg && arg.length && toType( arg ) !== "string" ) { // Inspect recursively add( arg ); } } ); } )( arguments ); if ( memory && !firing ) { fire(); } } return this; }, // Remove a callback from the list remove: function() { jQuery.each( arguments, function( _, arg ) { var index; while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { list.splice( index, 1 ); // Handle firing indexes if ( index <= firingIndex ) { firingIndex--; } } } ); return this; }, // Check if a given callback is in the list. // If no argument is given, return whether or not list has callbacks attached. has: function( fn ) { return fn ? jQuery.inArray( fn, list ) > -1 : list.length > 0; }, // Remove all callbacks from the list empty: function() { if ( list ) { list = []; } return this; }, // Disable .fire and .add // Abort any current/pending executions // Clear all callbacks and values disable: function() { locked = queue = []; list = memory = ""; return this; }, disabled: function() { return !list; }, // Disable .fire // Also disable .add unless we have memory (since it would have no effect) // Abort any pending executions lock: function() { locked = queue = []; if ( !memory && !firing ) { list = memory = ""; } return this; }, locked: function() { return !!locked; }, // Call all callbacks with the given context and arguments fireWith: function( context, args ) { if ( !locked ) { args = args || []; args = [ context, args.slice ? args.slice() : args ]; queue.push( args ); if ( !firing ) { fire(); } } return this; }, // Call all the callbacks with the given arguments fire: function() { self.fireWith( this, arguments ); return this; }, // To know if the callbacks have already been called at least once fired: function() { return !!fired; } }; return self; }; function Identity( v ) { return v; } function Thrower( ex ) { throw ex; } function adoptValue( value, resolve, reject, noValue ) { var method; try { // Check for promise aspect first to privilege synchronous behavior if ( value && isFunction( ( method = value.promise ) ) ) { method.call( value ).done( resolve ).fail( reject ); // Other thenables } else if ( value && isFunction( ( method = value.then ) ) ) { method.call( value, resolve, reject ); // Other non-thenables } else { // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: // * false: [ value ].slice( 0 ) => resolve( value ) // * true: [ value ].slice( 1 ) => resolve() resolve.apply( undefined, [ value ].slice( noValue ) ); } // For Promises/A+, convert exceptions into rejections // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in // Deferred#then to conditionally suppress rejection. } catch ( value ) { // Support: Android 4.0 only // Strict mode functions invoked without .call/.apply get global-object context reject.apply( undefined, [ value ] ); } } jQuery.extend( { Deferred: function( func ) { var tuples = [ // action, add listener, callbacks, // ... .then handlers, argument index, [final state] [ "notify", "progress", jQuery.Callbacks( "memory" ), jQuery.Callbacks( "memory" ), 2 ], [ "resolve", "done", jQuery.Callbacks( "once memory" ), jQuery.Callbacks( "once memory" ), 0, "resolved" ], [ "reject", "fail", jQuery.Callbacks( "once memory" ), jQuery.Callbacks( "once memory" ), 1, "rejected" ] ], state = "pending", promise = { state: function() { return state; }, always: function() { deferred.done( arguments ).fail( arguments ); return this; }, "catch": function( fn ) { return promise.then( null, fn ); }, // Keep pipe for back-compat pipe: function( /* fnDone, fnFail, fnProgress */ ) { var fns = arguments; return jQuery.Deferred( function( newDefer ) { jQuery.each( tuples, function( _i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; // deferred.progress(function() { bind to newDefer or newDefer.notify }) // deferred.done(function() { bind to newDefer or newDefer.resolve }) // deferred.fail(function() { bind to newDefer or newDefer.reject }) deferred[ tuple[ 1 ] ]( function() { var returned = fn && fn.apply( this, arguments ); if ( returned && isFunction( returned.promise ) ) { returned.promise() .progress( newDefer.notify ) .done( newDefer.resolve ) .fail( newDefer.reject ); } else { newDefer[ tuple[ 0 ] + "With" ]( this, fn ? [ returned ] : arguments ); } } ); } ); fns = null; } ).promise(); }, then: function( onFulfilled, onRejected, onProgress ) { var maxDepth = 0; function resolve( depth, deferred, handler, special ) { return function() { var that = this, args = arguments, mightThrow = function() { var returned, then; // Support: Promises/A+ section 2.3.3.3.3 // https://promisesaplus.com/#point-59 // Ignore double-resolution attempts if ( depth < maxDepth ) { return; } returned = handler.apply( that, args ); // Support: Promises/A+ section 2.3.1 // https://promisesaplus.com/#point-48 if ( returned === deferred.promise() ) { throw new TypeError( "Thenable self-resolution" ); } // Support: Promises/A+ sections 2.3.3.1, 3.5 // https://promisesaplus.com/#point-54 // https://promisesaplus.com/#point-75 // Retrieve `then` only once then = returned && // Support: Promises/A+ section 2.3.4 // https://promisesaplus.com/#point-64 // Only check objects and functions for thenability ( typeof returned === "object" || typeof returned === "function" ) && returned.then; // Handle a returned thenable if ( isFunction( then ) ) { // Special processors (notify) just wait for resolution if ( special ) { then.call( returned, resolve( maxDepth, deferred, Identity, special ), resolve( maxDepth, deferred, Thrower, special ) ); // Normal processors (resolve) also hook into progress } else { // ...and disregard older resolution values maxDepth++; then.call( returned, resolve( maxDepth, deferred, Identity, special ), resolve( maxDepth, deferred, Thrower, special ), resolve( maxDepth, deferred, Identity, deferred.notifyWith ) ); } // Handle all other returned values } else { // Only substitute handlers pass on context // and multiple values (non-spec behavior) if ( handler !== Identity ) { that = undefined; args = [ returned ]; } // Process the value(s) // Default process is resolve ( special || deferred.resolveWith )( that, args ); } }, // Only normal processors (resolve) catch and reject exceptions process = special ? mightThrow : function() { try { mightThrow(); } catch ( e ) { if ( jQuery.Deferred.exceptionHook ) { jQuery.Deferred.exceptionHook( e, process.stackTrace ); } // Support: Promises/A+ section 2.3.3.3.4.1 // https://promisesaplus.com/#point-61 // Ignore post-resolution exceptions if ( depth + 1 >= maxDepth ) { // Only substitute handlers pass on context // and multiple values (non-spec behavior) if ( handler !== Thrower ) { that = undefined; args = [ e ]; } deferred.rejectWith( that, args ); } } }; // Support: Promises/A+ section 2.3.3.3.1 // https://promisesaplus.com/#point-57 // Re-resolve promises immediately to dodge false rejection from // subsequent errors if ( depth ) { process(); } else { // Call an optional hook to record the stack, in case of exception // since it's otherwise lost when execution goes async if ( jQuery.Deferred.getStackHook ) { process.stackTrace = jQuery.Deferred.getStackHook(); } window.setTimeout( process ); } }; } return jQuery.Deferred( function( newDefer ) { // progress_handlers.add( ... ) tuples[ 0 ][ 3 ].add( resolve( 0, newDefer, isFunction( onProgress ) ? onProgress : Identity, newDefer.notifyWith ) ); // fulfilled_handlers.add( ... ) tuples[ 1 ][ 3 ].add( resolve( 0, newDefer, isFunction( onFulfilled ) ? onFulfilled : Identity ) ); // rejected_handlers.add( ... ) tuples[ 2 ][ 3 ].add( resolve( 0, newDefer, isFunction( onRejected ) ? onRejected : Thrower ) ); } ).promise(); }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { return obj != null ? jQuery.extend( obj, promise ) : promise; } }, deferred = {}; // Add list-specific methods jQuery.each( tuples, function( i, tuple ) { var list = tuple[ 2 ], stateString = tuple[ 5 ]; // promise.progress = list.add // promise.done = list.add // promise.fail = list.add promise[ tuple[ 1 ] ] = list.add; // Handle state if ( stateString ) { list.add( function() { // state = "resolved" (i.e., fulfilled) // state = "rejected" state = stateString; }, // rejected_callbacks.disable // fulfilled_callbacks.disable tuples[ 3 - i ][ 2 ].disable, // rejected_handlers.disable // fulfilled_handlers.disable tuples[ 3 - i ][ 3 ].disable, // progress_callbacks.lock tuples[ 0 ][ 2 ].lock, // progress_handlers.lock tuples[ 0 ][ 3 ].lock ); } // progress_handlers.fire // fulfilled_handlers.fire // rejected_handlers.fire list.add( tuple[ 3 ].fire ); // deferred.notify = function() { deferred.notifyWith(...) } // deferred.resolve = function() { deferred.resolveWith(...) } // deferred.reject = function() { deferred.rejectWith(...) } deferred[ tuple[ 0 ] ] = function() { deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); return this; }; // deferred.notifyWith = list.fireWith // deferred.resolveWith = list.fireWith // deferred.rejectWith = list.fireWith deferred[ tuple[ 0 ] + "With" ] = list.fireWith; } ); // Make the deferred a promise promise.promise( deferred ); // Call given func if any if ( func ) { func.call( deferred, deferred ); } // All done! return deferred; }, // Deferred helper when: function( singleValue ) { var // count of uncompleted subordinates remaining = arguments.length, // count of unprocessed arguments i = remaining, // subordinate fulfillment data resolveContexts = Array( i ), resolveValues = slice.call( arguments ), // the primary Deferred primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { return function( value ) { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } return primary.promise(); } } ); // These usually indicate a programmer mistake during development, // warn about them ASAP rather than swallowing them by default. var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; jQuery.Deferred.exceptionHook = function( error, stack ) { // Support: IE 8 - 9 only // Console exists when dev tools are open, which can happen at any time if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); } }; jQuery.readyException = function( error ) { window.setTimeout( function() { throw error; } ); }; // The deferred used on DOM ready var readyList = jQuery.Deferred(); jQuery.fn.ready = function( fn ) { readyList .then( fn ) // Wrap jQuery.readyException in a function so that the lookup // happens at the time of error handling instead of callback // registration. .catch( function( error ) { jQuery.readyException( error ); } ); return this; }; jQuery.extend( { // Is the DOM ready to be used? Set to true once it occurs. isReady: false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait: 1, // Handle when the DOM is ready ready: function( wait ) { // Abort if there are pending holds or we're already ready if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { return; } // Remember that the DOM is ready jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be if ( wait !== true && --jQuery.readyWait > 0 ) { return; } // If there are functions bound, to execute readyList.resolveWith( document, [ jQuery ] ); } } ); jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method function completed() { document.removeEventListener( "DOMContentLoaded", completed ); window.removeEventListener( "load", completed ); jQuery.ready(); } // Catch cases where $(document).ready() is called // after the browser event has already occurred. // Support: IE <=9 - 10 only // Older IE sometimes signals "interactive" too soon if ( document.readyState === "complete" || ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { // Handle it asynchronously to allow scripts the opportunity to delay ready window.setTimeout( jQuery.ready ); } else { // Use the handy event callback document.addEventListener( "DOMContentLoaded", completed ); // A fallback to window.onload, that will always work window.addEventListener( "load", completed ); } // Multifunctional method to get and set values of a collection // The value/s can optionally be executed if it's a function var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { var i = 0, len = elems.length, bulk = key == null; // Sets many values if ( toType( key ) === "object" ) { chainable = true; for ( i in key ) { access( elems, fn, i, key[ i ], true, emptyGet, raw ); } // Sets one value } else if ( value !== undefined ) { chainable = true; if ( !isFunction( value ) ) { raw = true; } if ( bulk ) { // Bulk operations run against the entire set if ( raw ) { fn.call( elems, value ); fn = null; // ...except when executing function values } else { bulk = fn; fn = function( elem, _key, value ) { return bulk.call( jQuery( elem ), value ); }; } } if ( fn ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } } if ( chainable ) { return elems; } // Gets if ( bulk ) { return fn.call( elems ); } return len ? fn( elems[ 0 ], key ) : emptyGet; }; // Matches dashed string for camelizing var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() function fcamelCase( _all, letter ) { return letter.toUpperCase(); } // Convert dashed to camelCase; used by the css and data modules // Support: IE <=9 - 11, Edge 12 - 15 // Microsoft forgot to hump their vendor prefix (#9572) function camelCase( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); } var acceptData = function( owner ) { // Accepts only: // - Node // - Node.ELEMENT_NODE // - Node.DOCUMENT_NODE // - Object // - Any return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); }; function Data() { this.expando = jQuery.expando + Data.uid++; } Data.uid = 1; Data.prototype = { cache: function( owner ) { // Check if the owner object already has a cache var value = owner[ this.expando ]; // If not, create one if ( !value ) { value = {}; // We can accept data for non-element nodes in modern browsers, // but we should not, see #8335. // Always return an empty object. if ( acceptData( owner ) ) { // If it is a node unlikely to be stringify-ed or looped over // use plain assignment if ( owner.nodeType ) { owner[ this.expando ] = value; // Otherwise secure it in a non-enumerable property // configurable must be true to allow the property to be // deleted when data is removed } else { Object.defineProperty( owner, this.expando, { value: value, configurable: true } ); } } } return value; }, set: function( owner, data, value ) { var prop, cache = this.cache( owner ); // Handle: [ owner, key, value ] args // Always use camelCase key (gh-2257) if ( typeof data === "string" ) { cache[ camelCase( data ) ] = value; // Handle: [ owner, { properties } ] args } else { // Copy the properties one-by-one to the cache object for ( prop in data ) { cache[ camelCase( prop ) ] = data[ prop ]; } } return cache; }, get: function( owner, key ) { return key === undefined ? this.cache( owner ) : // Always use camelCase key (gh-2257) owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; }, access: function( owner, key, value ) { // In cases where either: // // 1. No key was specified // 2. A string key was specified, but no value provided // // Take the "read" path and allow the get method to determine // which value to return, respectively either: // // 1. The entire cache object // 2. The data stored at the key // if ( key === undefined || ( ( key && typeof key === "string" ) && value === undefined ) ) { return this.get( owner, key ); } // When the key is not a string, or both a key and value // are specified, set or extend (existing objects) with either: // // 1. An object of properties // 2. A key and value // this.set( owner, key, value ); // Since the "set" path can have two possible entry points // return the expected data based on which path was taken[*] return value !== undefined ? value : key; }, remove: function( owner, key ) { var i, cache = owner[ this.expando ]; if ( cache === undefined ) { return; } if ( key !== undefined ) { // Support array or space separated string of keys if ( Array.isArray( key ) ) { // If key is an array of keys... // We always set camelCase keys, so remove that. key = key.map( camelCase ); } else { key = camelCase( key ); // If a key with the spaces exists, use it. // Otherwise, create an array by matching non-whitespace key = key in cache ? [ key ] : ( key.match( rnothtmlwhite ) || [] ); } i = key.length; while ( i-- ) { delete cache[ key[ i ] ]; } } // Remove the expando if there's no more data if ( key === undefined || jQuery.isEmptyObject( cache ) ) { // Support: Chrome <=35 - 45 // Webkit & Blink performance suffers when deleting properties // from DOM nodes, so set to undefined instead // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) if ( owner.nodeType ) { owner[ this.expando ] = undefined; } else { delete owner[ this.expando ]; } } }, hasData: function( owner ) { var cache = owner[ this.expando ]; return cache !== undefined && !jQuery.isEmptyObject( cache ); } }; var dataPriv = new Data(); var dataUser = new Data(); // Implementation Summary // // 1. Enforce API surface and semantic compatibility with 1.9.x branch // 2. Improve the module's maintainability by reducing the storage // paths to a single mechanism. // 3. Use the same single mechanism to support "private" and "user" data. // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) // 5. Avoid exposing implementation details on user objects (eg. expando properties) // 6. Provide a clear path for implementation upgrade to WeakMap in 2014 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; function getData( data ) { if ( data === "true" ) { return true; } if ( data === "false" ) { return false; } if ( data === "null" ) { return null; } // Only convert to a number if it doesn't change the string if ( data === +data + "" ) { return +data; } if ( rbrace.test( data ) ) { return JSON.parse( data ); } return data; } function dataAttr( elem, key, data ) { var name; // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined && elem.nodeType === 1 ) { name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); data = elem.getAttribute( name ); if ( typeof data === "string" ) { try { data = getData( data ); } catch ( e ) {} // Make sure we set the data so it isn't changed later dataUser.set( elem, key, data ); } else { data = undefined; } } return data; } jQuery.extend( { hasData: function( elem ) { return dataUser.hasData( elem ) || dataPriv.hasData( elem ); }, data: function( elem, name, data ) { return dataUser.access( elem, name, data ); }, removeData: function( elem, name ) { dataUser.remove( elem, name ); }, // TODO: Now that all calls to _data and _removeData have been replaced // with direct calls to dataPriv methods, these can be deprecated. _data: function( elem, name, data ) { return dataPriv.access( elem, name, data ); }, _removeData: function( elem, name ) { dataPriv.remove( elem, name ); } } ); jQuery.fn.extend( { data: function( key, value ) { var i, name, data, elem = this[ 0 ], attrs = elem && elem.attributes; // Gets all values if ( key === undefined ) { if ( this.length ) { data = dataUser.get( elem ); if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { i = attrs.length; while ( i-- ) { // Support: IE 11 only // The attrs elements can be null (#14894) if ( attrs[ i ] ) { name = attrs[ i ].name; if ( name.indexOf( "data-" ) === 0 ) { name = camelCase( name.slice( 5 ) ); dataAttr( elem, name, data[ name ] ); } } } dataPriv.set( elem, "hasDataAttrs", true ); } } return data; } // Sets multiple values if ( typeof key === "object" ) { return this.each( function() { dataUser.set( this, key ); } ); } return access( this, function( value ) { var data; // The calling jQuery object (element matches) is not empty // (and therefore has an element appears at this[ 0 ]) and the // `value` parameter was not undefined. An empty jQuery object // will result in `undefined` for elem = this[ 0 ] which will // throw an exception if an attempt to read a data cache is made. if ( elem && value === undefined ) { // Attempt to get data from the cache // The key will always be camelCased in Data data = dataUser.get( elem, key ); if ( data !== undefined ) { return data; } // Attempt to "discover" the data in // HTML5 custom data-* attrs data = dataAttr( elem, key ); if ( data !== undefined ) { return data; } // We tried really hard, but the data doesn't exist. return; } // Set the data... this.each( function() { // We always store the camelCased key dataUser.set( this, key, value ); } ); }, null, value, arguments.length > 1, null, true ); }, removeData: function( key ) { return this.each( function() { dataUser.remove( this, key ); } ); } } ); jQuery.extend( { queue: function( elem, type, data ) { var queue; if ( elem ) { type = ( type || "fx" ) + "queue"; queue = dataPriv.get( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { if ( !queue || Array.isArray( data ) ) { queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); } else { queue.push( data ); } } return queue || []; } }, dequeue: function( elem, type ) { type = type || "fx"; var queue = jQuery.queue( elem, type ), startLength = queue.length, fn = queue.shift(), hooks = jQuery._queueHooks( elem, type ), next = function() { jQuery.dequeue( elem, type ); }; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { fn = queue.shift(); startLength--; } if ( fn ) { // Add a progress sentinel to prevent the fx queue from being // automatically dequeued if ( type === "fx" ) { queue.unshift( "inprogress" ); } // Clear up the last queue stop function delete hooks.stop; fn.call( elem, next, hooks ); } if ( !startLength && hooks ) { hooks.empty.fire(); } }, // Not public - generate a queueHooks object, or return the current one _queueHooks: function( elem, type ) { var key = type + "queueHooks"; return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { empty: jQuery.Callbacks( "once memory" ).add( function() { dataPriv.remove( elem, [ type + "queue", key ] ); } ) } ); } } ); jQuery.fn.extend( { queue: function( type, data ) { var setter = 2; if ( typeof type !== "string" ) { data = type; type = "fx"; setter--; } if ( arguments.length < setter ) { return jQuery.queue( this[ 0 ], type ); } return data === undefined ? this : this.each( function() { var queue = jQuery.queue( this, type, data ); // Ensure a hooks for this queue jQuery._queueHooks( this, type ); if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { jQuery.dequeue( this, type ); } } ); }, dequeue: function( type ) { return this.each( function() { jQuery.dequeue( this, type ); } ); }, clearQueue: function( type ) { return this.queue( type || "fx", [] ); }, // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) promise: function( type, obj ) { var tmp, count = 1, defer = jQuery.Deferred(), elements = this, i = this.length, resolve = function() { if ( !( --count ) ) { defer.resolveWith( elements, [ elements ] ); } }; if ( typeof type !== "string" ) { obj = type; type = undefined; } type = type || "fx"; while ( i-- ) { tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); if ( tmp && tmp.empty ) { count++; tmp.empty.add( resolve ); } } resolve(); return defer.promise( obj ); } } ); var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; var documentElement = document.documentElement; var isAttached = function( elem ) { return jQuery.contains( elem.ownerDocument, elem ); }, composed = { composed: true }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only // Check attachment across shadow DOM boundaries when possible (gh-3504) // Support: iOS 10.0-10.2 only // Early iOS 10 versions support `attachShadow` but not `getRootNode`, // leading to errors. We need to check for `getRootNode`. if ( documentElement.getRootNode ) { isAttached = function( elem ) { return jQuery.contains( elem.ownerDocument, elem ) || elem.getRootNode( composed ) === elem.ownerDocument; }; } var isHiddenWithinTree = function( elem, el ) { // isHiddenWithinTree might be called from jQuery#filter function; // in that case, element will be second argument elem = el || elem; // Inline style trumps all return elem.style.display === "none" || elem.style.display === "" && // Otherwise, check computed style // Support: Firefox <=43 - 45 // Disconnected elements can have computed display: none, so first confirm that elem is // in the document. isAttached( elem ) && jQuery.css( elem, "display" ) === "none"; }; function adjustCSS( elem, prop, valueParts, tween ) { var adjusted, scale, maxIterations = 20, currentValue = tween ? function() { return tween.cur(); } : function() { return jQuery.css( elem, prop, "" ); }, initial = currentValue(), unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), // Starting value computation is required for potential unit mismatches initialInUnit = elem.nodeType && ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && rcssNum.exec( jQuery.css( elem, prop ) ); if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { // Support: Firefox <=54 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) initial = initial / 2; // Trust units reported by jQuery.css unit = unit || initialInUnit[ 3 ]; // Iteratively approximate from a nonzero starting point initialInUnit = +initial || 1; while ( maxIterations-- ) { // Evaluate and update our best guess (doubling guesses that zero out). // Finish if the scale equals or crosses 1 (making the old*new product non-positive). jQuery.style( elem, prop, initialInUnit + unit ); if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { maxIterations = 0; } initialInUnit = initialInUnit / scale; } initialInUnit = initialInUnit * 2; jQuery.style( elem, prop, initialInUnit + unit ); // Make sure we update the tween properties later on valueParts = valueParts || []; } if ( valueParts ) { initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified adjusted = valueParts[ 1 ] ? initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : +valueParts[ 2 ]; if ( tween ) { tween.unit = unit; tween.start = initialInUnit; tween.end = adjusted; } } return adjusted; } var defaultDisplayMap = {}; function getDefaultDisplay( elem ) { var temp, doc = elem.ownerDocument, nodeName = elem.nodeName, display = defaultDisplayMap[ nodeName ]; if ( display ) { return display; } temp = doc.body.appendChild( doc.createElement( nodeName ) ); display = jQuery.css( temp, "display" ); temp.parentNode.removeChild( temp ); if ( display === "none" ) { display = "block"; } defaultDisplayMap[ nodeName ] = display; return display; } function showHide( elements, show ) { var display, elem, values = [], index = 0, length = elements.length; // Determine new display value for elements that need to change for ( ; index < length; index++ ) { elem = elements[ index ]; if ( !elem.style ) { continue; } display = elem.style.display; if ( show ) { // Since we force visibility upon cascade-hidden elements, an immediate (and slow) // check is required in this first loop unless we have a nonempty display value (either // inline or about-to-be-restored) if ( display === "none" ) { values[ index ] = dataPriv.get( elem, "display" ) || null; if ( !values[ index ] ) { elem.style.display = ""; } } if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { values[ index ] = getDefaultDisplay( elem ); } } else { if ( display !== "none" ) { values[ index ] = "none"; // Remember what we're overwriting dataPriv.set( elem, "display", display ); } } } // Set the display of the elements in a second loop to avoid constant reflow for ( index = 0; index < length; index++ ) { if ( values[ index ] != null ) { elements[ index ].style.display = values[ index ]; } } return elements; } jQuery.fn.extend( { show: function() { return showHide( this, true ); }, hide: function() { return showHide( this ); }, toggle: function( state ) { if ( typeof state === "boolean" ) { return state ? this.show() : this.hide(); } return this.each( function() { if ( isHiddenWithinTree( this ) ) { jQuery( this ).show(); } else { jQuery( this ).hide(); } } ); } } ); var rcheckableType = ( /^(?:checkbox|radio)$/i ); var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); ( function() { var fragment = document.createDocumentFragment(), div = fragment.appendChild( document.createElement( "div" ) ), input = document.createElement( "input" ); // Support: Android 4.0 - 4.3 only // Check state lost if the name is set (#11217) // Support: Windows Web Apps (WWA) // `name` and `type` must use .setAttribute for WWA (#14901) input.setAttribute( "type", "radio" ); input.setAttribute( "checked", "checked" ); input.setAttribute( "name", "t" ); div.appendChild( input ); // Support: Android <=4.1 only // Older WebKit doesn't clone checked state correctly in fragments support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; // Support: IE <=11 only // Make sure textarea (and checkbox) defaultValue is properly cloned div.innerHTML = ""; support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; // Support: IE <=9 only // IE <=9 replaces "; support.option = !!div.lastChild; } )(); // We have to close these tags to support XHTML (#13200) var wrapMap = { // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten // this by omitting or other required elements. thead: [ 1, "", "
" ], col: [ 2, "", "
" ], tr: [ 2, "", "
" ], td: [ 3, "", "
" ], _default: [ 0, "", "" ] }; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; // Support: IE <=9 only if ( !support.option ) { wrapMap.optgroup = wrapMap.option = [ 1, "" ]; } function getAll( context, tag ) { // Support: IE <=9 - 11 only // Use typeof to avoid zero-argument method invocation on host objects (#15151) var ret; if ( typeof context.getElementsByTagName !== "undefined" ) { ret = context.getElementsByTagName( tag || "*" ); } else if ( typeof context.querySelectorAll !== "undefined" ) { ret = context.querySelectorAll( tag || "*" ); } else { ret = []; } if ( tag === undefined || tag && nodeName( context, tag ) ) { return jQuery.merge( [ context ], ret ); } return ret; } // Mark scripts as having already been evaluated function setGlobalEval( elems, refElements ) { var i = 0, l = elems.length; for ( ; i < l; i++ ) { dataPriv.set( elems[ i ], "globalEval", !refElements || dataPriv.get( refElements[ i ], "globalEval" ) ); } } var rhtml = /<|&#?\w+;/; function buildFragment( elems, context, scripts, selection, ignored ) { var elem, tmp, tag, wrap, attached, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, l = elems.length; for ( ; i < l; i++ ) { elem = elems[ i ]; if ( elem || elem === 0 ) { // Add nodes directly if ( toType( elem ) === "object" ) { // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); // Convert non-html into a text node } else if ( !rhtml.test( elem ) ) { nodes.push( context.createTextNode( elem ) ); // Convert html into DOM nodes } else { tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); // Deserialize a standard representation tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); wrap = wrapMap[ tag ] || wrapMap._default; tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; // Descend through wrappers to the right content j = wrap[ 0 ]; while ( j-- ) { tmp = tmp.lastChild; } // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit jQuery.merge( nodes, tmp.childNodes ); // Remember the top-level container tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392) tmp.textContent = ""; } } } // Remove wrapper from fragment fragment.textContent = ""; i = 0; while ( ( elem = nodes[ i++ ] ) ) { // Skip elements already in the context collection (trac-4087) if ( selection && jQuery.inArray( elem, selection ) > -1 ) { if ( ignored ) { ignored.push( elem ); } continue; } attached = isAttached( elem ); // Append to fragment tmp = getAll( fragment.appendChild( elem ), "script" ); // Preserve script evaluation history if ( attached ) { setGlobalEval( tmp ); } // Capture executables if ( scripts ) { j = 0; while ( ( elem = tmp[ j++ ] ) ) { if ( rscriptType.test( elem.type || "" ) ) { scripts.push( elem ); } } } } return fragment; } var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; } function returnFalse() { return false; } // Support: IE <=9 - 11+ // focus() and blur() are asynchronous, except when they are no-op. // So expect focus to be synchronous when the element is already active, // and blur to be synchronous when the element is not already active. // (focus and blur are always synchronous in other supported browsers, // this just defines when we can count on it). function expectSync( elem, type ) { return ( elem === safeActiveElement() ) === ( type === "focus" ); } // Support: IE <=9 only // Accessing document.activeElement can throw unexpectedly // https://bugs.jquery.com/ticket/13393 function safeActiveElement() { try { return document.activeElement; } catch ( err ) { } } function on( elem, types, selector, data, fn, one ) { var origFn, type; // Types can be a map of types/handlers if ( typeof types === "object" ) { // ( types-Object, selector, data ) if ( typeof selector !== "string" ) { // ( types-Object, data ) data = data || selector; selector = undefined; } for ( type in types ) { on( elem, type, selector, data, types[ type ], one ); } return elem; } if ( data == null && fn == null ) { // ( types, fn ) fn = selector; data = selector = undefined; } else if ( fn == null ) { if ( typeof selector === "string" ) { // ( types, selector, fn ) fn = data; data = undefined; } else { // ( types, data, fn ) fn = data; data = selector; selector = undefined; } } if ( fn === false ) { fn = returnFalse; } else if ( !fn ) { return elem; } if ( one === 1 ) { origFn = fn; fn = function( event ) { // Can use an empty set, since event contains the info jQuery().off( event ); return origFn.apply( this, arguments ); }; // Use same guid so caller can remove using origFn fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); } return elem.each( function() { jQuery.event.add( this, types, fn, data, selector ); } ); } /* * Helper functions for managing events -- not part of the public interface. * Props to Dean Edwards' addEvent library for many of the ideas. */ jQuery.event = { global: {}, add: function( elem, types, handler, data, selector ) { var handleObjIn, eventHandle, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); // Only attach events to objects that accept data if ( !acceptData( elem ) ) { return; } // Caller can pass in an object of custom data in lieu of the handler if ( handler.handler ) { handleObjIn = handler; handler = handleObjIn.handler; selector = handleObjIn.selector; } // Ensure that invalid selectors throw exceptions at attach time // Evaluate against documentElement in case elem is a non-element node (e.g., document) if ( selector ) { jQuery.find.matchesSelector( documentElement, selector ); } // Make sure that the handler has a unique ID, used to find/remove it later if ( !handler.guid ) { handler.guid = jQuery.guid++; } // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { events = elemData.events = Object.create( null ); } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply( elem, arguments ) : undefined; }; } // Handle multiple events separated by a space types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; t = types.length; while ( t-- ) { tmp = rtypenamespace.exec( types[ t ] ) || []; type = origType = tmp[ 1 ]; namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); // There *must* be a type, no attaching namespace-only handlers if ( !type ) { continue; } // If event changes its type, use the special event handlers for the changed type special = jQuery.event.special[ type ] || {}; // If selector defined, determine special event api type, otherwise given type type = ( selector ? special.delegateType : special.bindType ) || type; // Update special based on newly reset type special = jQuery.event.special[ type ] || {}; // handleObj is passed to all event handlers handleObj = jQuery.extend( { type: type, origType: origType, data: data, handler: handler, guid: handler.guid, selector: selector, needsContext: selector && jQuery.expr.match.needsContext.test( selector ), namespace: namespaces.join( "." ) }, handleObjIn ); // Init the event handler queue if we're the first if ( !( handlers = events[ type ] ) ) { handlers = events[ type ] = []; handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { if ( elem.addEventListener ) { elem.addEventListener( type, eventHandle ); } } } if ( special.add ) { special.add.call( elem, handleObj ); if ( !handleObj.handler.guid ) { handleObj.handler.guid = handler.guid; } } // Add to the element's handler list, delegates in front if ( selector ) { handlers.splice( handlers.delegateCount++, 0, handleObj ); } else { handlers.push( handleObj ); } // Keep track of which events have ever been used, for event optimization jQuery.event.global[ type ] = true; } }, // Detach an event or set of events from an element remove: function( elem, types, handler, selector, mappedTypes ) { var j, origCount, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); if ( !elemData || !( events = elemData.events ) ) { return; } // Once for each type.namespace in types; type may be omitted types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; t = types.length; while ( t-- ) { tmp = rtypenamespace.exec( types[ t ] ) || []; type = origType = tmp[ 1 ]; namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); // Unbind all events (on this namespace, if provided) for the element if ( !type ) { for ( type in events ) { jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); } continue; } special = jQuery.event.special[ type ] || {}; type = ( selector ? special.delegateType : special.bindType ) || type; handlers = events[ type ] || []; tmp = tmp[ 2 ] && new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); // Remove matching events origCount = j = handlers.length; while ( j-- ) { handleObj = handlers[ j ]; if ( ( mappedTypes || origType === handleObj.origType ) && ( !handler || handler.guid === handleObj.guid ) && ( !tmp || tmp.test( handleObj.namespace ) ) && ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { handlers.splice( j, 1 ); if ( handleObj.selector ) { handlers.delegateCount--; } if ( special.remove ) { special.remove.call( elem, handleObj ); } } } // Remove generic event handler if we removed something and no more handlers exist // (avoids potential for endless recursion during removal of special event handlers) if ( origCount && !handlers.length ) { if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } delete events[ type ]; } } // Remove data and the expando if it's no longer used if ( jQuery.isEmptyObject( events ) ) { dataPriv.remove( elem, "handle events" ); } }, dispatch: function( nativeEvent ) { var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), // Make a writable jQuery.Event from the native event object event = jQuery.event.fix( nativeEvent ), handlers = ( dataPriv.get( this, "events" ) || Object.create( null ) )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event args[ 0 ] = event; for ( i = 1; i < arguments.length; i++ ) { args[ i ] = arguments[ i ]; } event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { return; } // Determine handlers handlerQueue = jQuery.event.handlers.call( this, event, handlers ); // Run delegates first; they may want to stop propagation beneath us i = 0; while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { event.currentTarget = matched.elem; j = 0; while ( ( handleObj = matched.handlers[ j++ ] ) && !event.isImmediatePropagationStopped() ) { // If the event is namespaced, then each handler is only invoked if it is // specially universal or its namespaces are a superset of the event's. if ( !event.rnamespace || handleObj.namespace === false || event.rnamespace.test( handleObj.namespace ) ) { event.handleObj = handleObj; event.data = handleObj.data; ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || handleObj.handler ).apply( matched.elem, args ); if ( ret !== undefined ) { if ( ( event.result = ret ) === false ) { event.preventDefault(); event.stopPropagation(); } } } } } // Call the postDispatch hook for the mapped type if ( special.postDispatch ) { special.postDispatch.call( this, event ); } return event.result; }, handlers: function( event, handlers ) { var i, handleObj, sel, matchedHandlers, matchedSelectors, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target; // Find delegate handlers if ( delegateCount && // Support: IE <=9 // Black-hole SVG instance trees (trac-13180) cur.nodeType && // Support: Firefox <=42 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click // Support: IE 11 only // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) !( event.type === "click" && event.button >= 1 ) ) { for ( ; cur !== this; cur = cur.parentNode || this ) { // Don't check non-elements (#13208) // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { matchedHandlers = []; matchedSelectors = {}; for ( i = 0; i < delegateCount; i++ ) { handleObj = handlers[ i ]; // Don't conflict with Object.prototype properties (#13203) sel = handleObj.selector + " "; if ( matchedSelectors[ sel ] === undefined ) { matchedSelectors[ sel ] = handleObj.needsContext ? jQuery( sel, this ).index( cur ) > -1 : jQuery.find( sel, this, null, [ cur ] ).length; } if ( matchedSelectors[ sel ] ) { matchedHandlers.push( handleObj ); } } if ( matchedHandlers.length ) { handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); } } } } // Add the remaining (directly-bound) handlers cur = this; if ( delegateCount < handlers.length ) { handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); } return handlerQueue; }, addProp: function( name, hook ) { Object.defineProperty( jQuery.Event.prototype, name, { enumerable: true, configurable: true, get: isFunction( hook ) ? function() { if ( this.originalEvent ) { return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { return this.originalEvent[ name ]; } }, set: function( value ) { Object.defineProperty( this, name, { enumerable: true, configurable: true, writable: true, value: value } ); } } ); }, fix: function( originalEvent ) { return originalEvent[ jQuery.expando ] ? originalEvent : new jQuery.Event( originalEvent ); }, special: { load: { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, click: { // Utilize native event to ensure correct state for checkable inputs setup: function( data ) { // For mutual compressibility with _default, replace `this` access with a local var. // `|| data` is dead code meant only to preserve the variable through minification. var el = this || data; // Claim the first handler if ( rcheckableType.test( el.type ) && el.click && nodeName( el, "input" ) ) { // dataPriv.set( el, "click", ... ) leverageNative( el, "click", returnTrue ); } // Return false to allow normal processing in the caller return false; }, trigger: function( data ) { // For mutual compressibility with _default, replace `this` access with a local var. // `|| data` is dead code meant only to preserve the variable through minification. var el = this || data; // Force setup before triggering a click if ( rcheckableType.test( el.type ) && el.click && nodeName( el, "input" ) ) { leverageNative( el, "click" ); } // Return non-false to allow normal event-path propagation return true; }, // For cross-browser consistency, suppress native .click() on links // Also prevent it if we're currently inside a leveraged native-event stack _default: function( event ) { var target = event.target; return rcheckableType.test( target.type ) && target.click && nodeName( target, "input" ) && dataPriv.get( target, "click" ) || nodeName( target, "a" ); } }, beforeunload: { postDispatch: function( event ) { // Support: Firefox 20+ // Firefox doesn't alert if the returnValue field is not set. if ( event.result !== undefined && event.originalEvent ) { event.originalEvent.returnValue = event.result; } } } } }; // Ensure the presence of an event listener that handles manually-triggered // synthetic events by interrupting progress until reinvoked in response to // *native* events that it fires directly, ensuring that state changes have // already occurred before other listeners are invoked. function leverageNative( el, type, expectSync ) { // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add if ( !expectSync ) { if ( dataPriv.get( el, type ) === undefined ) { jQuery.event.add( el, type, returnTrue ); } return; } // Register the controller as a special universal handler for all event namespaces dataPriv.set( el, type, false ); jQuery.event.add( el, type, { namespace: false, handler: function( event ) { var notAsync, result, saved = dataPriv.get( this, type ); if ( ( event.isTrigger & 1 ) && this[ type ] ) { // Interrupt processing of the outer synthetic .trigger()ed event // Saved data should be false in such cases, but might be a leftover capture object // from an async native handler (gh-4350) if ( !saved.length ) { // Store arguments for use when handling the inner native event // There will always be at least one argument (an event object), so this array // will not be confused with a leftover capture object. saved = slice.call( arguments ); dataPriv.set( this, type, saved ); // Trigger the native event and capture its result // Support: IE <=9 - 11+ // focus() and blur() are asynchronous notAsync = expectSync( this, type ); this[ type ](); result = dataPriv.get( this, type ); if ( saved !== result || notAsync ) { dataPriv.set( this, type, false ); } else { result = {}; } if ( saved !== result ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); // Support: Chrome 86+ // In Chrome, if an element having a focusout handler is blurred by // clicking outside of it, it invokes the handler synchronously. If // that handler calls `.remove()` on the element, the data is cleared, // leaving `result` undefined. We need to guard against this. return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate // (focus or blur), assume that the surrogate already propagated from triggering the // native event and prevent that from happening again here. // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the // bubbling surrogate propagates *after* the non-bubbling base), but that seems // less bad than duplication. } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { event.stopPropagation(); } // If this is a native event triggered above, everything is now in order // Fire an inner synthetic event with the original arguments } else if ( saved.length ) { // ...and capture the result dataPriv.set( this, type, { value: jQuery.event.trigger( // Support: IE <=9 - 11+ // Extend with the prototype to reset the above stopImmediatePropagation() jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), saved.slice( 1 ), this ) } ); // Abort handling of the native event event.stopImmediatePropagation(); } } } ); } jQuery.removeEvent = function( elem, type, handle ) { // This "if" is needed for plain objects if ( elem.removeEventListener ) { elem.removeEventListener( type, handle ); } }; jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword if ( !( this instanceof jQuery.Event ) ) { return new jQuery.Event( src, props ); } // Event object if ( src && src.type ) { this.originalEvent = src; this.type = src.type; // Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only src.returnValue === false ? returnTrue : returnFalse; // Create target properties // Support: Safari <=6 - 7 only // Target should not be a text node (#504, #13143) this.target = ( src.target && src.target.nodeType === 3 ) ? src.target.parentNode : src.target; this.currentTarget = src.currentTarget; this.relatedTarget = src.relatedTarget; // Event type } else { this.type = src; } // Put explicitly provided properties onto the event object if ( props ) { jQuery.extend( this, props ); } // Create a timestamp if incoming event doesn't have one this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed this[ jQuery.expando ] = true; }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html jQuery.Event.prototype = { constructor: jQuery.Event, isDefaultPrevented: returnFalse, isPropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse, isSimulated: false, preventDefault: function() { var e = this.originalEvent; this.isDefaultPrevented = returnTrue; if ( e && !this.isSimulated ) { e.preventDefault(); } }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = returnTrue; if ( e && !this.isSimulated ) { e.stopPropagation(); } }, stopImmediatePropagation: function() { var e = this.originalEvent; this.isImmediatePropagationStopped = returnTrue; if ( e && !this.isSimulated ) { e.stopImmediatePropagation(); } this.stopPropagation(); } }; // Includes all common event props including KeyEvent and MouseEvent specific props jQuery.each( { altKey: true, bubbles: true, cancelable: true, changedTouches: true, ctrlKey: true, detail: true, eventPhase: true, metaKey: true, pageX: true, pageY: true, shiftKey: true, view: true, "char": true, code: true, charCode: true, key: true, keyCode: true, button: true, buttons: true, clientX: true, clientY: true, offsetX: true, offsetY: true, pointerId: true, pointerType: true, screenX: true, screenY: true, targetTouches: true, toElement: true, touches: true, which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { jQuery.event.special[ type ] = { // Utilize native event if possible so blur/focus sequence is correct setup: function() { // Claim the first handler // dataPriv.set( this, "focus", ... ) // dataPriv.set( this, "blur", ... ) leverageNative( this, type, expectSync ); // Return false to allow normal processing in the caller return false; }, trigger: function() { // Force setup before trigger leverageNative( this, type ); // Return non-false to allow normal event-path propagation return true; }, // Suppress native focus or blur as it's already being fired // in leverageNative. _default: function() { return true; }, delegateType: delegateType }; } ); // Create mouseenter/leave events using mouseover/out and event-time checks // so that event delegation works in jQuery. // Do the same for pointerenter/pointerleave and pointerover/pointerout // // Support: Safari 7 only // Safari sends mouseenter too often; see: // https://bugs.chromium.org/p/chromium/issues/detail?id=470258 // for the description of the bug (it existed in older Chrome versions as well). jQuery.each( { mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { delegateType: fix, bindType: fix, handle: function( event ) { var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { event.type = handleObj.origType; ret = handleObj.handler.apply( this, arguments ); event.type = fix; } return ret; } }; } ); jQuery.fn.extend( { on: function( types, selector, data, fn ) { return on( this, types, selector, data, fn ); }, one: function( types, selector, data, fn ) { return on( this, types, selector, data, fn, 1 ); }, off: function( types, selector, fn ) { var handleObj, type; if ( types && types.preventDefault && types.handleObj ) { // ( event ) dispatched jQuery.Event handleObj = types.handleObj; jQuery( types.delegateTarget ).off( handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler ); return this; } if ( typeof types === "object" ) { // ( types-object [, selector] ) for ( type in types ) { this.off( type, selector, types[ type ] ); } return this; } if ( selector === false || typeof selector === "function" ) { // ( types [, fn] ) fn = selector; selector = undefined; } if ( fn === false ) { fn = returnFalse; } return this.each( function() { jQuery.event.remove( this, types, fn, selector ); } ); } } ); var // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ rnoInnerhtml = /\s*$/g; // Prefer a tbody over its parent table for containing new rows function manipulationTarget( elem, content ) { if ( nodeName( elem, "table" ) && nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { return jQuery( elem ).children( "tbody" )[ 0 ] || elem; } return elem; } // Replace/restore the type attribute of script elements for safe DOM manipulation function disableScript( elem ) { elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; return elem; } function restoreScript( elem ) { if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { elem.type = elem.type.slice( 5 ); } else { elem.removeAttribute( "type" ); } return elem; } function cloneCopyEvent( src, dest ) { var i, l, type, pdataOld, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; } // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { pdataOld = dataPriv.get( src ); events = pdataOld.events; if ( events ) { dataPriv.remove( dest, "handle events" ); for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { jQuery.event.add( dest, type, events[ type ][ i ] ); } } } } // 2. Copy user data if ( dataUser.hasData( src ) ) { udataOld = dataUser.access( src ); udataCur = jQuery.extend( {}, udataOld ); dataUser.set( dest, udataCur ); } } // Fix IE bugs, see support tests function fixInput( src, dest ) { var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button. if ( nodeName === "input" && rcheckableType.test( src.type ) ) { dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options } else if ( nodeName === "input" || nodeName === "textarea" ) { dest.defaultValue = src.defaultValue; } } function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays args = flat( args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, l = collection.length, iNoClone = l - 1, value = args[ 0 ], valueIsFunction = isFunction( value ); // We can't cloneNode fragments that contain checked, in WebKit if ( valueIsFunction || ( l > 1 && typeof value === "string" && !support.checkClone && rchecked.test( value ) ) ) { return collection.each( function( index ) { var self = collection.eq( index ); if ( valueIsFunction ) { args[ 0 ] = value.call( this, index, self.html() ); } domManip( self, args, callback, ignored ); } ); } if ( l ) { fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); first = fragment.firstChild; if ( fragment.childNodes.length === 1 ) { fragment = first; } // Require either new content or an interest in ignored elements to invoke the callback if ( first || ignored ) { scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); hasScripts = scripts.length; // Use the original fragment for the last item // instead of the first because it can end up // being emptied incorrectly in certain situations (#8070). for ( ; i < l; i++ ) { node = fragment; if ( i !== iNoClone ) { node = jQuery.clone( node, true, true ); // Keep references to cloned scripts for later restoration if ( hasScripts ) { // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit jQuery.merge( scripts, getAll( node, "script" ) ); } } callback.call( collection[ i ], node, i ); } if ( hasScripts ) { doc = scripts[ scripts.length - 1 ].ownerDocument; // Reenable scripts jQuery.map( scripts, restoreScript ); // Evaluate executable scripts on first document insertion for ( i = 0; i < hasScripts; i++ ) { node = scripts[ i ]; if ( rscriptType.test( node.type || "" ) && !dataPriv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { // Optional AJAX dependency, but won't run scripts if not present if ( jQuery._evalUrl && !node.noModule ) { jQuery._evalUrl( node.src, { nonce: node.nonce || node.getAttribute( "nonce" ) }, doc ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); } } } } } } return collection; } function remove( elem, selector, keepData ) { var node, nodes = selector ? jQuery.filter( selector, elem ) : elem, i = 0; for ( ; ( node = nodes[ i ] ) != null; i++ ) { if ( !keepData && node.nodeType === 1 ) { jQuery.cleanData( getAll( node ) ); } if ( node.parentNode ) { if ( keepData && isAttached( node ) ) { setGlobalEval( getAll( node, "script" ) ); } node.parentNode.removeChild( node ); } } return elem; } jQuery.extend( { htmlPrefilter: function( html ) { return html; }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { var i, l, srcElements, destElements, clone = elem.cloneNode( true ), inPage = isAttached( elem ); // Fix IE cloning issues if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) { // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 destElements = getAll( clone ); srcElements = getAll( elem ); for ( i = 0, l = srcElements.length; i < l; i++ ) { fixInput( srcElements[ i ], destElements[ i ] ); } } // Copy the events from the original to the clone if ( dataAndEvents ) { if ( deepDataAndEvents ) { srcElements = srcElements || getAll( elem ); destElements = destElements || getAll( clone ); for ( i = 0, l = srcElements.length; i < l; i++ ) { cloneCopyEvent( srcElements[ i ], destElements[ i ] ); } } else { cloneCopyEvent( elem, clone ); } } // Preserve script evaluation history destElements = getAll( clone, "script" ); if ( destElements.length > 0 ) { setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); } // Return the cloned set return clone; }, cleanData: function( elems ) { var data, elem, type, special = jQuery.event.special, i = 0; for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { if ( acceptData( elem ) ) { if ( ( data = elem[ dataPriv.expando ] ) ) { if ( data.events ) { for ( type in data.events ) { if ( special[ type ] ) { jQuery.event.remove( elem, type ); // This is a shortcut to avoid jQuery.event.remove's overhead } else { jQuery.removeEvent( elem, type, data.handle ); } } } // Support: Chrome <=35 - 45+ // Assign undefined instead of using delete, see Data#remove elem[ dataPriv.expando ] = undefined; } if ( elem[ dataUser.expando ] ) { // Support: Chrome <=35 - 45+ // Assign undefined instead of using delete, see Data#remove elem[ dataUser.expando ] = undefined; } } } } } ); jQuery.fn.extend( { detach: function( selector ) { return remove( this, selector, true ); }, remove: function( selector ) { return remove( this, selector ); }, text: function( value ) { return access( this, function( value ) { return value === undefined ? jQuery.text( this ) : this.empty().each( function() { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { this.textContent = value; } } ); }, null, value, arguments.length ); }, append: function() { return domManip( this, arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.appendChild( elem ); } } ); }, prepend: function() { return domManip( this, arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.insertBefore( elem, target.firstChild ); } } ); }, before: function() { return domManip( this, arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this ); } } ); }, after: function() { return domManip( this, arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this.nextSibling ); } } ); }, empty: function() { var elem, i = 0; for ( ; ( elem = this[ i ] ) != null; i++ ) { if ( elem.nodeType === 1 ) { // Prevent memory leaks jQuery.cleanData( getAll( elem, false ) ); // Remove any remaining nodes elem.textContent = ""; } } return this; }, clone: function( dataAndEvents, deepDataAndEvents ) { dataAndEvents = dataAndEvents == null ? false : dataAndEvents; deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; return this.map( function() { return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); } ); }, html: function( value ) { return access( this, function( value ) { var elem = this[ 0 ] || {}, i = 0, l = this.length; if ( value === undefined && elem.nodeType === 1 ) { return elem.innerHTML; } // See if we can take a shortcut and just use innerHTML if ( typeof value === "string" && !rnoInnerhtml.test( value ) && !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { value = jQuery.htmlPrefilter( value ); try { for ( ; i < l; i++ ) { elem = this[ i ] || {}; // Remove element nodes and prevent memory leaks if ( elem.nodeType === 1 ) { jQuery.cleanData( getAll( elem, false ) ); elem.innerHTML = value; } } elem = 0; // If using innerHTML throws an exception, use the fallback method } catch ( e ) {} } if ( elem ) { this.empty().append( value ); } }, null, value, arguments.length ); }, replaceWith: function() { var ignored = []; // Make the changes, replacing each non-ignored context element with the new content return domManip( this, arguments, function( elem ) { var parent = this.parentNode; if ( jQuery.inArray( this, ignored ) < 0 ) { jQuery.cleanData( getAll( this ) ); if ( parent ) { parent.replaceChild( elem, this ); } } // Force callback invocation }, ignored ); } } ); jQuery.each( { appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function( name, original ) { jQuery.fn[ name ] = function( selector ) { var elems, ret = [], insert = jQuery( selector ), last = insert.length - 1, i = 0; for ( ; i <= last; i++ ) { elems = i === last ? this : this.clone( true ); jQuery( insert[ i ] )[ original ]( elems ); // Support: Android <=4.0 only, PhantomJS 1 only // .get() because push.apply(_, arraylike) throws on ancient WebKit push.apply( ret, elems.get() ); } return this.pushStack( ret ); }; } ); var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); var getStyles = function( elem ) { // Support: IE <=11 only, Firefox <=30 (#15098, #14150) // IE throws on elements created in popups // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" var view = elem.ownerDocument.defaultView; if ( !view || !view.opener ) { view = window; } return view.getComputedStyle( elem ); }; var swap = function( elem, options, callback ) { var ret, name, old = {}; // Remember the old values, and insert the new ones for ( name in options ) { old[ name ] = elem.style[ name ]; elem.style[ name ] = options[ name ]; } ret = callback.call( elem ); // Revert the old values for ( name in options ) { elem.style[ name ] = old[ name ]; } return ret; }; var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); ( function() { // Executing both pixelPosition & boxSizingReliable tests require only one layout // so they're executed at the same time to save the second computation. function computeStyleTests() { // This is a singleton, we need to execute it only once if ( !div ) { return; } container.style.cssText = "position:absolute;left:-11111px;width:60px;" + "margin-top:1px;padding:0;border:0"; div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + "margin:auto;border:1px;padding:1px;" + "width:60%;top:1%"; documentElement.appendChild( container ).appendChild( div ); var divStyle = window.getComputedStyle( div ); pixelPositionVal = divStyle.top !== "1%"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 // Some styles come back with percentage values, even though they shouldn't div.style.right = "60%"; pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; // Support: IE 9 - 11 only // Detect misreporting of content dimensions for box-sizing:border-box elements boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; // Support: IE 9 only // Detect overflow:scroll screwiness (gh-3699) // Support: Chrome <=64 // Don't get tricked when zoom affects offsetWidth (gh-4029) div.style.position = "absolute"; scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; documentElement.removeChild( container ); // Nullify the div so it wouldn't be stored in the memory and // it will also be a sign that checks already performed div = null; } function roundPixelMeasures( measure ) { return Math.round( parseFloat( measure ) ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, reliableTrDimensionsVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); // Finish early in limited (non-browser) environments if ( !div.style ) { return; } // Support: IE <=9 - 11 only // Style of cloned element affects source element cloned (#8908) div.style.backgroundClip = "content-box"; div.cloneNode( true ).style.backgroundClip = ""; support.clearCloneStyle = div.style.backgroundClip === "content-box"; jQuery.extend( support, { boxSizingReliable: function() { computeStyleTests(); return boxSizingReliableVal; }, pixelBoxStyles: function() { computeStyleTests(); return pixelBoxStylesVal; }, pixelPosition: function() { computeStyleTests(); return pixelPositionVal; }, reliableMarginLeft: function() { computeStyleTests(); return reliableMarginLeftVal; }, scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; }, // Support: IE 9 - 11+, Edge 15 - 18+ // IE/Edge misreport `getComputedStyle` of table rows with width/height // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! // // Support: Firefox 70+ // Only Firefox includes border widths // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { table = document.createElement( "table" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; tr.style.cssText = "border:1px solid"; // Support: Chrome 86+ // Height set through cssText does not get applied. // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; // Support: Android 8 Chrome 86+ // In our bodyBackground.html iframe, // display for all div elements is set to "inline", // which causes a problem only in Android 8 Chrome 86. // Ensuring the div is display: block // gets around this issue. trChild.style.display = "block"; documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + parseInt( trStyle.borderTopWidth, 10 ) + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } return reliableTrDimensionsVal; } } ); } )(); function curCSS( elem, name, computed ) { var width, minWidth, maxWidth, ret, // Support: Firefox 51+ // Retrieving style before computed somehow // fixes an issue with getting wrong values // on detached elements style = elem.style; computed = computed || getStyles( elem ); // getPropertyValue is needed for: // .css('filter') (IE 9 only, #12537) // .css('--customProperty) (#3144) if ( computed ) { ret = computed.getPropertyValue( name ) || computed[ name ]; if ( ret === "" && !isAttached( elem ) ) { ret = jQuery.style( elem, name ); } // A tribute to the "awesome hack by Dean Edwards" // Android Browser returns percentage for some values, // but width seems to be reliably pixels. // This is against the CSSOM draft spec: // https://drafts.csswg.org/cssom/#resolved-values if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { // Remember the original values width = style.width; minWidth = style.minWidth; maxWidth = style.maxWidth; // Put in the new values to get a computed value out style.minWidth = style.maxWidth = style.width = ret; ret = computed.width; // Revert the changed values style.width = width; style.minWidth = minWidth; style.maxWidth = maxWidth; } } return ret !== undefined ? // Support: IE <=9 - 11 only // IE returns zIndex value as an integer. ret + "" : ret; } function addGetHookIf( conditionFn, hookFn ) { // Define the hook, we'll check on the first run if it's really needed. return { get: function() { if ( conditionFn() ) { // Hook not needed (or it's not possible to use it due // to missing dependency), remove it. delete this.get; return; } // Hook needed; redefine it so that the support test is not executed again. return ( this.get = hookFn ).apply( this, arguments ); } }; } var cssPrefixes = [ "Webkit", "Moz", "ms" ], emptyStyle = document.createElement( "div" ).style, vendorProps = {}; // Return a vendor-prefixed property or undefined function vendorPropName( name ) { // Check for vendor prefixed names var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), i = cssPrefixes.length; while ( i-- ) { name = cssPrefixes[ i ] + capName; if ( name in emptyStyle ) { return name; } } } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property function finalPropName( name ) { var final = jQuery.cssProps[ name ] || vendorProps[ name ]; if ( final ) { return final; } if ( name in emptyStyle ) { return name; } return vendorProps[ name ] = vendorPropName( name ) || name; } var // Swappable if display is none or starts with table // except "table", "table-cell", or "table-caption" // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display rdisplayswap = /^(none|table(?!-c[ea]).+)/, rcustomProp = /^--/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { letterSpacing: "0", fontWeight: "400" }; function setPositiveNumber( _elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point var matches = rcssNum.exec( value ); return matches ? // Guard against undefined "subtract", e.g., when used as in cssHooks Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : value; } function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { var i = dimension === "width" ? 1 : 0, extra = 0, delta = 0; // Adjustment may not be necessary if ( box === ( isBorderBox ? "border" : "content" ) ) { return 0; } for ( ; i < 4; i += 2 ) { // Both box models exclude margin if ( box === "margin" ) { delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); } // If we get here with a content-box, we're seeking "padding" or "border" or "margin" if ( !isBorderBox ) { // Add padding delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); // For "border" or "margin", add border if ( box !== "padding" ) { delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); // But still keep track of it otherwise } else { extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } // If we get here with a border-box (content + padding + border), we're seeking "content" or // "padding" or "margin" } else { // For "content", subtract padding if ( box === "content" ) { delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); } // For "content" or "padding", subtract border if ( box !== "margin" ) { delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } } } // Account for positive content-box scroll gutter when requested by providing computedVal if ( !isBorderBox && computedVal >= 0 ) { // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border // Assuming integer scroll gutter, subtract the rest and round down delta += Math.max( 0, Math.ceil( elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter // Use an explicit zero to avoid NaN (gh-3964) ) ) || 0; } return delta; } function getWidthOrHeight( elem, dimension, extra ) { // Start with computed style var styles = getStyles( elem ), // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). // Fake content-box until we know it's needed to know the true value. boxSizingNeeded = !support.boxSizingReliable() || extra, isBorderBox = boxSizingNeeded && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", valueIsBorderBox = isBorderBox, val = curCSS( elem, dimension, styles ), offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); // Support: Firefox <=54 // Return a confounding non-pixel value or feign ignorance, as appropriate. if ( rnumnonpx.test( val ) ) { if ( !extra ) { return val; } val = "auto"; } // Support: IE 9 - 11 only // Use offsetWidth/offsetHeight for when box sizing is unreliable. // In those cases, the computed value can be trusted to be border-box. if ( ( !support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+ // IE/Edge misreport `getComputedStyle` of table rows with width/height // set in CSS while `offset*` properties report correct values. // Interestingly, in some cases IE 9 doesn't suffer from this issue. !support.reliableTrDimensions() && nodeName( elem, "tr" ) || // Fall back to offsetWidth/offsetHeight when value is "auto" // This happens for inline elements with no explicit setting (gh-3571) val === "auto" || // Support: Android <=4.1 - 4.3 only // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && // Make sure the element is visible & connected elem.getClientRects().length ) { isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; // Where available, offsetWidth/offsetHeight approximate border box dimensions. // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the // retrieved value as a content box dimension. valueIsBorderBox = offsetProp in elem; if ( valueIsBorderBox ) { val = elem[ offsetProp ]; } } // Normalize "" and auto val = parseFloat( val ) || 0; // Adjust for the element's box model return ( val + boxModelAdjustment( elem, dimension, extra || ( isBorderBox ? "border" : "content" ), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589) val ) ) + "px"; } jQuery.extend( { // Add in style property hooks for overriding the default // behavior of getting and setting a style property cssHooks: { opacity: { get: function( elem, computed ) { if ( computed ) { // We should always get a number back from opacity var ret = curCSS( elem, "opacity" ); return ret === "" ? "1" : ret; } } } }, // Don't automatically add "px" to these possibly-unitless properties cssNumber: { "animationIterationCount": true, "columnCount": true, "fillOpacity": true, "flexGrow": true, "flexShrink": true, "fontWeight": true, "gridArea": true, "gridColumn": true, "gridColumnEnd": true, "gridColumnStart": true, "gridRow": true, "gridRowEnd": true, "gridRowStart": true, "lineHeight": true, "opacity": true, "order": true, "orphans": true, "widows": true, "zIndex": true, "zoom": true }, // Add in properties whose names you wish to fix before // setting or getting the value cssProps: {}, // Get and set the style property on a DOM Node style: function( elem, name, value, extra ) { // Don't set styles on text and comment nodes if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { return; } // Make sure that we're working with the right name var ret, type, hooks, origName = camelCase( name ), isCustomProp = rcustomProp.test( name ), style = elem.style; // Make sure that we're working with the right name. We don't // want to query the value if it is a CSS custom property // since they are user-defined. if ( !isCustomProp ) { name = finalPropName( origName ); } // Gets hook for the prefixed version, then unprefixed version hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // Check if we're setting a value if ( value !== undefined ) { type = typeof value; // Convert "+=" or "-=" to relative numbers (#7345) if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { value = adjustCSS( elem, name, ret ); // Fixes bug #9237 type = "number"; } // Make sure that null and NaN values aren't set (#7116) if ( value == null || value !== value ) { return; } // If a number was passed in, add the unit (except for certain CSS properties) // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append // "px" to a few hardcoded values. if ( type === "number" && !isCustomProp ) { value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); } // background-* props affect original clone's values if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { style[ name ] = "inherit"; } // If a hook was provided, use that value, otherwise just set the specified value if ( !hooks || !( "set" in hooks ) || ( value = hooks.set( elem, value, extra ) ) !== undefined ) { if ( isCustomProp ) { style.setProperty( name, value ); } else { style[ name ] = value; } } } else { // If a hook was provided get the non-computed value from there if ( hooks && "get" in hooks && ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { return ret; } // Otherwise just get the value from the style object return style[ name ]; } }, css: function( elem, name, extra, styles ) { var val, num, hooks, origName = camelCase( name ), isCustomProp = rcustomProp.test( name ); // Make sure that we're working with the right name. We don't // want to modify the value if it is a CSS custom property // since they are user-defined. if ( !isCustomProp ) { name = finalPropName( origName ); } // Try prefixed name followed by the unprefixed name hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // If a hook was provided get the computed value from there if ( hooks && "get" in hooks ) { val = hooks.get( elem, true, extra ); } // Otherwise, if a way to get the computed value exists, use that if ( val === undefined ) { val = curCSS( elem, name, styles ); } // Convert "normal" to computed value if ( val === "normal" && name in cssNormalTransform ) { val = cssNormalTransform[ name ]; } // Make numeric if forced or a qualifier was provided and val looks numeric if ( extra === "" || extra ) { num = parseFloat( val ); return extra === true || isFinite( num ) ? num || 0 : val; } return val; } } ); jQuery.each( [ "height", "width" ], function( _i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { // Certain elements can have dimension info if we invisibly show them // but it must have a current display style that would benefit return rdisplayswap.test( jQuery.css( elem, "display" ) ) && // Support: Safari 8+ // Table columns in Safari have non-zero offsetWidth & zero // getBoundingClientRect().width unless display is changed. // Support: IE <=11 only // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? swap( elem, cssShow, function() { return getWidthOrHeight( elem, dimension, extra ); } ) : getWidthOrHeight( elem, dimension, extra ); } }, set: function( elem, value, extra ) { var matches, styles = getStyles( elem ), // Only read styles.position if the test has a chance to fail // to avoid forcing a reflow. scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === "absolute", // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) boxSizingNeeded = scrollboxSizeBuggy || extra, isBorderBox = boxSizingNeeded && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", subtract = extra ? boxModelAdjustment( elem, dimension, extra, isBorderBox, styles ) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and // faking a content-box to get border and padding (gh-3699) if ( isBorderBox && scrollboxSizeBuggy ) { subtract -= Math.ceil( elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - parseFloat( styles[ dimension ] ) - boxModelAdjustment( elem, dimension, "border", false, styles ) - 0.5 ); } // Convert to pixels if value adjustment is needed if ( subtract && ( matches = rcssNum.exec( value ) ) && ( matches[ 3 ] || "px" ) !== "px" ) { elem.style[ dimension ] = value; value = jQuery.css( elem, dimension ); } return setPositiveNumber( elem, value, subtract ); } }; } ); jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, function( elem, computed ) { if ( computed ) { return ( parseFloat( curCSS( elem, "marginLeft" ) ) || elem.getBoundingClientRect().left - swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) ) + "px"; } } ); // These hooks are used by animate to expand properties jQuery.each( { margin: "", padding: "", border: "Width" }, function( prefix, suffix ) { jQuery.cssHooks[ prefix + suffix ] = { expand: function( value ) { var i = 0, expanded = {}, // Assumes a single number if not a string parts = typeof value === "string" ? value.split( " " ) : [ value ]; for ( ; i < 4; i++ ) { expanded[ prefix + cssExpand[ i ] + suffix ] = parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; } return expanded; } }; if ( prefix !== "margin" ) { jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; } } ); jQuery.fn.extend( { css: function( name, value ) { return access( this, function( elem, name, value ) { var styles, len, map = {}, i = 0; if ( Array.isArray( name ) ) { styles = getStyles( elem ); len = name.length; for ( ; i < len; i++ ) { map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); } return map; } return value !== undefined ? jQuery.style( elem, name, value ) : jQuery.css( elem, name ); }, name, value, arguments.length > 1 ); } } ); function Tween( elem, options, prop, end, easing ) { return new Tween.prototype.init( elem, options, prop, end, easing ); } jQuery.Tween = Tween; Tween.prototype = { constructor: Tween, init: function( elem, options, prop, end, easing, unit ) { this.elem = elem; this.prop = prop; this.easing = easing || jQuery.easing._default; this.options = options; this.start = this.now = this.cur(); this.end = end; this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); }, cur: function() { var hooks = Tween.propHooks[ this.prop ]; return hooks && hooks.get ? hooks.get( this ) : Tween.propHooks._default.get( this ); }, run: function( percent ) { var eased, hooks = Tween.propHooks[ this.prop ]; if ( this.options.duration ) { this.pos = eased = jQuery.easing[ this.easing ]( percent, this.options.duration * percent, 0, 1, this.options.duration ); } else { this.pos = eased = percent; } this.now = ( this.end - this.start ) * eased + this.start; if ( this.options.step ) { this.options.step.call( this.elem, this.now, this ); } if ( hooks && hooks.set ) { hooks.set( this ); } else { Tween.propHooks._default.set( this ); } return this; } }; Tween.prototype.init.prototype = Tween.prototype; Tween.propHooks = { _default: { get: function( tween ) { var result; // Use a property on the element directly when it is not a DOM element, // or when there is no matching style property that exists. if ( tween.elem.nodeType !== 1 || tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { return tween.elem[ tween.prop ]; } // Passing an empty string as a 3rd parameter to .css will automatically // attempt a parseFloat and fallback to a string if the parse fails. // Simple values such as "10px" are parsed to Float; // complex values such as "rotate(1rad)" are returned as-is. result = jQuery.css( tween.elem, tween.prop, "" ); // Empty strings, null, undefined and "auto" are converted to 0. return !result || result === "auto" ? 0 : result; }, set: function( tween ) { // Use step hook for back compat. // Use cssHook if its there. // Use .style if available and use plain properties where available. if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { tween.elem[ tween.prop ] = tween.now; } } } }; // Support: IE <=9 only // Panic based approach to setting things on disconnected nodes Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { set: function( tween ) { if ( tween.elem.nodeType && tween.elem.parentNode ) { tween.elem[ tween.prop ] = tween.now; } } }; jQuery.easing = { linear: function( p ) { return p; }, swing: function( p ) { return 0.5 - Math.cos( p * Math.PI ) / 2; }, _default: "swing" }; jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point jQuery.fx.step = {}; var fxNow, inProgress, rfxtypes = /^(?:toggle|show|hide)$/, rrun = /queueHooks$/; function schedule() { if ( inProgress ) { if ( document.hidden === false && window.requestAnimationFrame ) { window.requestAnimationFrame( schedule ); } else { window.setTimeout( schedule, jQuery.fx.interval ); } jQuery.fx.tick(); } } // Animations created synchronously will run synchronously function createFxNow() { window.setTimeout( function() { fxNow = undefined; } ); return ( fxNow = Date.now() ); } // Generate parameters to create a standard animation function genFx( type, includeWidth ) { var which, i = 0, attrs = { height: type }; // If we include width, step value is 1 to do all cssExpand values, // otherwise step value is 2 to skip over Left and Right includeWidth = includeWidth ? 1 : 0; for ( ; i < 4; i += 2 - includeWidth ) { which = cssExpand[ i ]; attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; } if ( includeWidth ) { attrs.opacity = attrs.width = type; } return attrs; } function createTween( value, prop, animation ) { var tween, collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), index = 0, length = collection.length; for ( ; index < length; index++ ) { if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { // We're done with this property return tween; } } } function defaultPrefilter( elem, props, opts ) { var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, isBox = "width" in props || "height" in props, anim = this, orig = {}, style = elem.style, hidden = elem.nodeType && isHiddenWithinTree( elem ), dataShow = dataPriv.get( elem, "fxshow" ); // Queue-skipping animations hijack the fx hooks if ( !opts.queue ) { hooks = jQuery._queueHooks( elem, "fx" ); if ( hooks.unqueued == null ) { hooks.unqueued = 0; oldfire = hooks.empty.fire; hooks.empty.fire = function() { if ( !hooks.unqueued ) { oldfire(); } }; } hooks.unqueued++; anim.always( function() { // Ensure the complete handler is called before this completes anim.always( function() { hooks.unqueued--; if ( !jQuery.queue( elem, "fx" ).length ) { hooks.empty.fire(); } } ); } ); } // Detect show/hide animations for ( prop in props ) { value = props[ prop ]; if ( rfxtypes.test( value ) ) { delete props[ prop ]; toggle = toggle || value === "toggle"; if ( value === ( hidden ? "hide" : "show" ) ) { // Pretend to be hidden if this is a "show" and // there is still data from a stopped show/hide if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { hidden = true; // Ignore all other no-op show/hide data } else { continue; } } orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); } } // Bail out if this is a no-op like .hide().hide() propTween = !jQuery.isEmptyObject( props ); if ( !propTween && jQuery.isEmptyObject( orig ) ) { return; } // Restrict "overflow" and "display" styles during box animations if ( isBox && elem.nodeType === 1 ) { // Support: IE <=9 - 11, Edge 12 - 15 // Record all 3 overflow attributes because IE does not infer the shorthand // from identically-valued overflowX and overflowY and Edge just mirrors // the overflowX value there. opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; // Identify a display type, preferring old show/hide data over the CSS cascade restoreDisplay = dataShow && dataShow.display; if ( restoreDisplay == null ) { restoreDisplay = dataPriv.get( elem, "display" ); } display = jQuery.css( elem, "display" ); if ( display === "none" ) { if ( restoreDisplay ) { display = restoreDisplay; } else { // Get nonempty value(s) by temporarily forcing visibility showHide( [ elem ], true ); restoreDisplay = elem.style.display || restoreDisplay; display = jQuery.css( elem, "display" ); showHide( [ elem ] ); } } // Animate inline elements as inline-block if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { if ( jQuery.css( elem, "float" ) === "none" ) { // Restore the original display value at the end of pure show/hide animations if ( !propTween ) { anim.done( function() { style.display = restoreDisplay; } ); if ( restoreDisplay == null ) { display = style.display; restoreDisplay = display === "none" ? "" : display; } } style.display = "inline-block"; } } } if ( opts.overflow ) { style.overflow = "hidden"; anim.always( function() { style.overflow = opts.overflow[ 0 ]; style.overflowX = opts.overflow[ 1 ]; style.overflowY = opts.overflow[ 2 ]; } ); } // Implement show/hide animations propTween = false; for ( prop in orig ) { // General show/hide setup for this element animation if ( !propTween ) { if ( dataShow ) { if ( "hidden" in dataShow ) { hidden = dataShow.hidden; } } else { dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); } // Store hidden/visible for toggle so `.stop().toggle()` "reverses" if ( toggle ) { dataShow.hidden = !hidden; } // Show elements before animating them if ( hidden ) { showHide( [ elem ], true ); } /* eslint-disable no-loop-func */ anim.done( function() { /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { showHide( [ elem ] ); } dataPriv.remove( elem, "fxshow" ); for ( prop in orig ) { jQuery.style( elem, prop, orig[ prop ] ); } } ); } // Per-property setup propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); if ( !( prop in dataShow ) ) { dataShow[ prop ] = propTween.start; if ( hidden ) { propTween.end = propTween.start; propTween.start = 0; } } } } function propFilter( props, specialEasing ) { var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass for ( index in props ) { name = camelCase( index ); easing = specialEasing[ name ]; value = props[ index ]; if ( Array.isArray( value ) ) { easing = value[ 1 ]; value = props[ index ] = value[ 0 ]; } if ( index !== name ) { props[ name ] = value; delete props[ index ]; } hooks = jQuery.cssHooks[ name ]; if ( hooks && "expand" in hooks ) { value = hooks.expand( value ); delete props[ name ]; // Not quite $.extend, this won't overwrite existing keys. // Reusing 'index' because we have the correct "name" for ( index in value ) { if ( !( index in props ) ) { props[ index ] = value[ index ]; specialEasing[ index ] = easing; } } } else { specialEasing[ name ] = easing; } } } function Animation( elem, properties, options ) { var result, stopped, index = 0, length = Animation.prefilters.length, deferred = jQuery.Deferred().always( function() { // Don't match elem in the :animated selector delete tick.elem; } ), tick = function() { if ( stopped ) { return false; } var currentTime = fxNow || createFxNow(), remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), // Support: Android 2.3 only // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) temp = remaining / animation.duration || 0, percent = 1 - temp, index = 0, length = animation.tweens.length; for ( ; index < length; index++ ) { animation.tweens[ index ].run( percent ); } deferred.notifyWith( elem, [ animation, percent, remaining ] ); // If there's more to do, yield if ( percent < 1 && length ) { return remaining; } // If this was an empty animation, synthesize a final progress notification if ( !length ) { deferred.notifyWith( elem, [ animation, 1, 0 ] ); } // Resolve the animation and report its conclusion deferred.resolveWith( elem, [ animation ] ); return false; }, animation = deferred.promise( { elem: elem, props: jQuery.extend( {}, properties ), opts: jQuery.extend( true, { specialEasing: {}, easing: jQuery.easing._default }, options ), originalProperties: properties, originalOptions: options, startTime: fxNow || createFxNow(), duration: options.duration, tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, stop: function( gotoEnd ) { var index = 0, // If we are going to the end, we want to run all the tweens // otherwise we skip this part length = gotoEnd ? animation.tweens.length : 0; if ( stopped ) { return this; } stopped = true; for ( ; index < length; index++ ) { animation.tweens[ index ].run( 1 ); } // Resolve when we played the last frame; otherwise, reject if ( gotoEnd ) { deferred.notifyWith( elem, [ animation, 1, 0 ] ); deferred.resolveWith( elem, [ animation, gotoEnd ] ); } else { deferred.rejectWith( elem, [ animation, gotoEnd ] ); } return this; } } ), props = animation.props; propFilter( props, animation.opts.specialEasing ); for ( ; index < length; index++ ) { result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); if ( result ) { if ( isFunction( result.stop ) ) { jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = result.stop.bind( result ); } return result; } } jQuery.map( props, createTween, animation ); if ( isFunction( animation.opts.start ) ) { animation.opts.start.call( elem, animation ); } // Attach callbacks from options animation .progress( animation.opts.progress ) .done( animation.opts.done, animation.opts.complete ) .fail( animation.opts.fail ) .always( animation.opts.always ); jQuery.fx.timer( jQuery.extend( tick, { elem: elem, anim: animation, queue: animation.opts.queue } ) ); return animation; } jQuery.Animation = jQuery.extend( Animation, { tweeners: { "*": [ function( prop, value ) { var tween = this.createTween( prop, value ); adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); return tween; } ] }, tweener: function( props, callback ) { if ( isFunction( props ) ) { callback = props; props = [ "*" ]; } else { props = props.match( rnothtmlwhite ); } var prop, index = 0, length = props.length; for ( ; index < length; index++ ) { prop = props[ index ]; Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; Animation.tweeners[ prop ].unshift( callback ); } }, prefilters: [ defaultPrefilter ], prefilter: function( callback, prepend ) { if ( prepend ) { Animation.prefilters.unshift( callback ); } else { Animation.prefilters.push( callback ); } } } ); jQuery.speed = function( speed, easing, fn ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { complete: fn || !fn && easing || isFunction( speed ) && speed, duration: speed, easing: fn && easing || easing && !isFunction( easing ) && easing }; // Go to the end state if fx are off if ( jQuery.fx.off ) { opt.duration = 0; } else { if ( typeof opt.duration !== "number" ) { if ( opt.duration in jQuery.fx.speeds ) { opt.duration = jQuery.fx.speeds[ opt.duration ]; } else { opt.duration = jQuery.fx.speeds._default; } } } // Normalize opt.queue - true/undefined/null -> "fx" if ( opt.queue == null || opt.queue === true ) { opt.queue = "fx"; } // Queueing opt.old = opt.complete; opt.complete = function() { if ( isFunction( opt.old ) ) { opt.old.call( this ); } if ( opt.queue ) { jQuery.dequeue( this, opt.queue ); } }; return opt; }; jQuery.fn.extend( { fadeTo: function( speed, to, easing, callback ) { // Show any hidden elements after setting opacity to 0 return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() // Animate to the value specified .end().animate( { opacity: to }, speed, easing, callback ); }, animate: function( prop, speed, easing, callback ) { var empty = jQuery.isEmptyObject( prop ), optall = jQuery.speed( speed, easing, callback ), doAnimation = function() { // Operate on a copy of prop so per-property easing won't be lost var anim = Animation( this, jQuery.extend( {}, prop ), optall ); // Empty animations, or finishing resolves immediately if ( empty || dataPriv.get( this, "finish" ) ) { anim.stop( true ); } }; doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : this.queue( optall.queue, doAnimation ); }, stop: function( type, clearQueue, gotoEnd ) { var stopQueue = function( hooks ) { var stop = hooks.stop; delete hooks.stop; stop( gotoEnd ); }; if ( typeof type !== "string" ) { gotoEnd = clearQueue; clearQueue = type; type = undefined; } if ( clearQueue ) { this.queue( type || "fx", [] ); } return this.each( function() { var dequeue = true, index = type != null && type + "queueHooks", timers = jQuery.timers, data = dataPriv.get( this ); if ( index ) { if ( data[ index ] && data[ index ].stop ) { stopQueue( data[ index ] ); } } else { for ( index in data ) { if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { stopQueue( data[ index ] ); } } } for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && ( type == null || timers[ index ].queue === type ) ) { timers[ index ].anim.stop( gotoEnd ); dequeue = false; timers.splice( index, 1 ); } } // Start the next in the queue if the last step wasn't forced. // Timers currently will call their complete callbacks, which // will dequeue but only if they were gotoEnd. if ( dequeue || !gotoEnd ) { jQuery.dequeue( this, type ); } } ); }, finish: function( type ) { if ( type !== false ) { type = type || "fx"; } return this.each( function() { var index, data = dataPriv.get( this ), queue = data[ type + "queue" ], hooks = data[ type + "queueHooks" ], timers = jQuery.timers, length = queue ? queue.length : 0; // Enable finishing flag on private data data.finish = true; // Empty the queue first jQuery.queue( this, type, [] ); if ( hooks && hooks.stop ) { hooks.stop.call( this, true ); } // Look for any active animations, and finish them for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && timers[ index ].queue === type ) { timers[ index ].anim.stop( true ); timers.splice( index, 1 ); } } // Look for any animations in the old queue and finish them for ( index = 0; index < length; index++ ) { if ( queue[ index ] && queue[ index ].finish ) { queue[ index ].finish.call( this ); } } // Turn off finishing flag delete data.finish; } ); } } ); jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? cssFn.apply( this, arguments ) : this.animate( genFx( name, true ), speed, easing, callback ); }; } ); // Generate shortcuts for custom animations jQuery.each( { slideDown: genFx( "show" ), slideUp: genFx( "hide" ), slideToggle: genFx( "toggle" ), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function( name, props ) { jQuery.fn[ name ] = function( speed, easing, callback ) { return this.animate( props, speed, easing, callback ); }; } ); jQuery.timers = []; jQuery.fx.tick = function() { var timer, i = 0, timers = jQuery.timers; fxNow = Date.now(); for ( ; i < timers.length; i++ ) { timer = timers[ i ]; // Run the timer and safely remove it when done (allowing for external removal) if ( !timer() && timers[ i ] === timer ) { timers.splice( i--, 1 ); } } if ( !timers.length ) { jQuery.fx.stop(); } fxNow = undefined; }; jQuery.fx.timer = function( timer ) { jQuery.timers.push( timer ); jQuery.fx.start(); }; jQuery.fx.interval = 13; jQuery.fx.start = function() { if ( inProgress ) { return; } inProgress = true; schedule(); }; jQuery.fx.stop = function() { inProgress = null; }; jQuery.fx.speeds = { slow: 600, fast: 200, // Default speed _default: 400 }; // Based off of the plugin by Clint Helfers, with permission. // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; type = type || "fx"; return this.queue( type, function( next, hooks ) { var timeout = window.setTimeout( next, time ); hooks.stop = function() { window.clearTimeout( timeout ); }; } ); }; ( function() { var input = document.createElement( "input" ), select = document.createElement( "select" ), opt = select.appendChild( document.createElement( "option" ) ); input.type = "checkbox"; // Support: Android <=4.3 only // Default value for a checkbox should be "on" support.checkOn = input.value !== ""; // Support: IE <=11 only // Must access selectedIndex to make default options select support.optSelected = opt.selected; // Support: IE <=11 only // An input loses its value after becoming a radio input = document.createElement( "input" ); input.value = "t"; input.type = "radio"; support.radioValue = input.value === "t"; } )(); var boolHook, attrHandle = jQuery.expr.attrHandle; jQuery.fn.extend( { attr: function( name, value ) { return access( this, jQuery.attr, name, value, arguments.length > 1 ); }, removeAttr: function( name ) { return this.each( function() { jQuery.removeAttr( this, name ); } ); } } ); jQuery.extend( { attr: function( elem, name, value ) { var ret, hooks, nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes if ( nType === 3 || nType === 8 || nType === 2 ) { return; } // Fallback to prop when attributes are not supported if ( typeof elem.getAttribute === "undefined" ) { return jQuery.prop( elem, name, value ); } // Attribute hooks are determined by the lowercase version // Grab necessary hook if one is defined if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { hooks = jQuery.attrHooks[ name.toLowerCase() ] || ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); } if ( value !== undefined ) { if ( value === null ) { jQuery.removeAttr( elem, name ); return; } if ( hooks && "set" in hooks && ( ret = hooks.set( elem, value, name ) ) !== undefined ) { return ret; } elem.setAttribute( name, value + "" ); return value; } if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { return ret; } ret = jQuery.find.attr( elem, name ); // Non-existent attributes return null, we normalize to undefined return ret == null ? undefined : ret; }, attrHooks: { type: { set: function( elem, value ) { if ( !support.radioValue && value === "radio" && nodeName( elem, "input" ) ) { var val = elem.value; elem.setAttribute( "type", value ); if ( val ) { elem.value = val; } return value; } } } }, removeAttr: function( elem, value ) { var name, i = 0, // Attribute names can contain non-HTML whitespace characters // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 attrNames = value && value.match( rnothtmlwhite ); if ( attrNames && elem.nodeType === 1 ) { while ( ( name = attrNames[ i++ ] ) ) { elem.removeAttribute( name ); } } } } ); // Hooks for boolean attributes boolHook = { set: function( elem, value, name ) { if ( value === false ) { // Remove boolean attributes when set to false jQuery.removeAttr( elem, name ); } else { elem.setAttribute( name, name ); } return name; } }; jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { var ret, handle, lowercaseName = name.toLowerCase(); if ( !isXML ) { // Avoid an infinite loop by temporarily removing this function from the getter handle = attrHandle[ lowercaseName ]; attrHandle[ lowercaseName ] = ret; ret = getter( elem, name, isXML ) != null ? lowercaseName : null; attrHandle[ lowercaseName ] = handle; } return ret; }; } ); var rfocusable = /^(?:input|select|textarea|button)$/i, rclickable = /^(?:a|area)$/i; jQuery.fn.extend( { prop: function( name, value ) { return access( this, jQuery.prop, name, value, arguments.length > 1 ); }, removeProp: function( name ) { return this.each( function() { delete this[ jQuery.propFix[ name ] || name ]; } ); } } ); jQuery.extend( { prop: function( elem, name, value ) { var ret, hooks, nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes if ( nType === 3 || nType === 8 || nType === 2 ) { return; } if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { // Fix name and attach hooks name = jQuery.propFix[ name ] || name; hooks = jQuery.propHooks[ name ]; } if ( value !== undefined ) { if ( hooks && "set" in hooks && ( ret = hooks.set( elem, value, name ) ) !== undefined ) { return ret; } return ( elem[ name ] = value ); } if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { return ret; } return elem[ name ]; }, propHooks: { tabIndex: { get: function( elem ) { // Support: IE <=9 - 11 only // elem.tabIndex doesn't always return the // correct value when it hasn't been explicitly set // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ // Use proper attribute retrieval(#12072) var tabindex = jQuery.find.attr( elem, "tabindex" ); if ( tabindex ) { return parseInt( tabindex, 10 ); } if ( rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ) { return 0; } return -1; } } }, propFix: { "for": "htmlFor", "class": "className" } } ); // Support: IE <=11 only // Accessing the selectedIndex property // forces the browser to respect setting selected // on the option // The getter ensures a default option is selected // when in an optgroup // eslint rule "no-unused-expressions" is disabled for this code // since it considers such accessions noop if ( !support.optSelected ) { jQuery.propHooks.selected = { get: function( elem ) { /* eslint no-unused-expressions: "off" */ var parent = elem.parentNode; if ( parent && parent.parentNode ) { parent.parentNode.selectedIndex; } return null; }, set: function( elem ) { /* eslint no-unused-expressions: "off" */ var parent = elem.parentNode; if ( parent ) { parent.selectedIndex; if ( parent.parentNode ) { parent.parentNode.selectedIndex; } } } }; } jQuery.each( [ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable" ], function() { jQuery.propFix[ this.toLowerCase() ] = this; } ); // Strip and collapse whitespace according to HTML spec // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace function stripAndCollapse( value ) { var tokens = value.match( rnothtmlwhite ) || []; return tokens.join( " " ); } function getClass( elem ) { return elem.getAttribute && elem.getAttribute( "class" ) || ""; } function classesToArray( value ) { if ( Array.isArray( value ) ) { return value; } if ( typeof value === "string" ) { return value.match( rnothtmlwhite ) || []; } return []; } jQuery.fn.extend( { addClass: function( value ) { var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; if ( isFunction( value ) ) { return this.each( function( j ) { jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); } ); } classes = classesToArray( value ); if ( classes.length ) { while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); if ( cur ) { j = 0; while ( ( clazz = classes[ j++ ] ) ) { if ( cur.indexOf( " " + clazz + " " ) < 0 ) { cur += clazz + " "; } } // Only assign if different to avoid unneeded rendering. finalValue = stripAndCollapse( cur ); if ( curValue !== finalValue ) { elem.setAttribute( "class", finalValue ); } } } } return this; }, removeClass: function( value ) { var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; if ( isFunction( value ) ) { return this.each( function( j ) { jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); } ); } if ( !arguments.length ) { return this.attr( "class", "" ); } classes = classesToArray( value ); if ( classes.length ) { while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); // This expression is here for better compressibility (see addClass) cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); if ( cur ) { j = 0; while ( ( clazz = classes[ j++ ] ) ) { // Remove *all* instances while ( cur.indexOf( " " + clazz + " " ) > -1 ) { cur = cur.replace( " " + clazz + " ", " " ); } } // Only assign if different to avoid unneeded rendering. finalValue = stripAndCollapse( cur ); if ( curValue !== finalValue ) { elem.setAttribute( "class", finalValue ); } } } } return this; }, toggleClass: function( value, stateVal ) { var type = typeof value, isValidValue = type === "string" || Array.isArray( value ); if ( typeof stateVal === "boolean" && isValidValue ) { return stateVal ? this.addClass( value ) : this.removeClass( value ); } if ( isFunction( value ) ) { return this.each( function( i ) { jQuery( this ).toggleClass( value.call( this, i, getClass( this ), stateVal ), stateVal ); } ); } return this.each( function() { var className, i, self, classNames; if ( isValidValue ) { // Toggle individual class names i = 0; self = jQuery( this ); classNames = classesToArray( value ); while ( ( className = classNames[ i++ ] ) ) { // Check each className given, space separated list if ( self.hasClass( className ) ) { self.removeClass( className ); } else { self.addClass( className ); } } // Toggle whole class name } else if ( value === undefined || type === "boolean" ) { className = getClass( this ); if ( className ) { // Store className if set dataPriv.set( this, "__className__", className ); } // If the element has a class name or if we're passed `false`, // then remove the whole classname (if there was one, the above saved it). // Otherwise bring back whatever was previously saved (if anything), // falling back to the empty string if nothing was stored. if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? "" : dataPriv.get( this, "__className__" ) || "" ); } } } ); }, hasClass: function( selector ) { var className, elem, i = 0; className = " " + selector + " "; while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { return true; } } return false; } } ); var rreturn = /\r/g; jQuery.fn.extend( { val: function( value ) { var hooks, ret, valueIsFunction, elem = this[ 0 ]; if ( !arguments.length ) { if ( elem ) { hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; if ( hooks && "get" in hooks && ( ret = hooks.get( elem, "value" ) ) !== undefined ) { return ret; } ret = elem.value; // Handle most common string cases if ( typeof ret === "string" ) { return ret.replace( rreturn, "" ); } // Handle cases where value is null/undef or number return ret == null ? "" : ret; } return; } valueIsFunction = isFunction( value ); return this.each( function( i ) { var val; if ( this.nodeType !== 1 ) { return; } if ( valueIsFunction ) { val = value.call( this, i, jQuery( this ).val() ); } else { val = value; } // Treat null/undefined as ""; convert numbers to string if ( val == null ) { val = ""; } else if ( typeof val === "number" ) { val += ""; } else if ( Array.isArray( val ) ) { val = jQuery.map( val, function( value ) { return value == null ? "" : value + ""; } ); } hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; // If set returns undefined, fall back to normal setting if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { this.value = val; } } ); } } ); jQuery.extend( { valHooks: { option: { get: function( elem ) { var val = jQuery.find.attr( elem, "value" ); return val != null ? val : // Support: IE <=10 - 11 only // option.text throws exceptions (#14686, #14858) // Strip and collapse whitespace // https://html.spec.whatwg.org/#strip-and-collapse-whitespace stripAndCollapse( jQuery.text( elem ) ); } }, select: { get: function( elem ) { var value, option, i, options = elem.options, index = elem.selectedIndex, one = elem.type === "select-one", values = one ? null : [], max = one ? index + 1 : options.length; if ( index < 0 ) { i = max; } else { i = one ? index : 0; } // Loop through all the selected options for ( ; i < max; i++ ) { option = options[ i ]; // Support: IE <=9 only // IE8-9 doesn't update selected after form reset (#2551) if ( ( option.selected || i === index ) && // Don't return options that are disabled or in a disabled optgroup !option.disabled && ( !option.parentNode.disabled || !nodeName( option.parentNode, "optgroup" ) ) ) { // Get the specific value for the option value = jQuery( option ).val(); // We don't need an array for one selects if ( one ) { return value; } // Multi-Selects return an array values.push( value ); } } return values; }, set: function( elem, value ) { var optionSet, option, options = elem.options, values = jQuery.makeArray( value ), i = options.length; while ( i-- ) { option = options[ i ]; /* eslint-disable no-cond-assign */ if ( option.selected = jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) { optionSet = true; } /* eslint-enable no-cond-assign */ } // Force browsers to behave consistently when non-matching value is set if ( !optionSet ) { elem.selectedIndex = -1; } return values; } } } } ); // Radios and checkboxes getter/setter jQuery.each( [ "radio", "checkbox" ], function() { jQuery.valHooks[ this ] = { set: function( elem, value ) { if ( Array.isArray( value ) ) { return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); } } }; if ( !support.checkOn ) { jQuery.valHooks[ this ].get = function( elem ) { return elem.getAttribute( "value" ) === null ? "on" : elem.value; }; } } ); // Return jQuery for attributes-only inclusion support.focusin = "onfocusin" in window; var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, stopPropagationCallback = function( e ) { e.stopPropagation(); }; jQuery.extend( jQuery.event, { trigger: function( event, data, elem, onlyHandlers ) { var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, eventPath = [ elem || document ], type = hasOwn.call( event, "type" ) ? event.type : event, namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes if ( elem.nodeType === 3 || elem.nodeType === 8 ) { return; } // focus/blur morphs to focusin/out; ensure we're not firing them right now if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { return; } if ( type.indexOf( "." ) > -1 ) { // Namespaced trigger; create a regexp to match event type in handle() namespaces = type.split( "." ); type = namespaces.shift(); namespaces.sort(); } ontype = type.indexOf( ":" ) < 0 && "on" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string event = event[ jQuery.expando ] ? event : new jQuery.Event( type, typeof event === "object" && event ); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) event.isTrigger = onlyHandlers ? 2 : 3; event.namespace = namespaces.join( "." ); event.rnamespace = event.namespace ? new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : null; // Clean up the event in case it is being reused event.result = undefined; if ( !event.target ) { event.target = elem; } // Clone any incoming data and prepend the event, creating the handler arg list data = data == null ? [ event ] : jQuery.makeArray( data, [ event ] ); // Allow special events to draw outside the lines special = jQuery.event.special[ type ] || {}; if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { return; } // Determine event propagation path in advance, per W3C events spec (#9951) // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { bubbleType = special.delegateType || type; if ( !rfocusMorph.test( bubbleType + type ) ) { cur = cur.parentNode; } for ( ; cur; cur = cur.parentNode ) { eventPath.push( cur ); tmp = cur; } // Only add window if we got to document (e.g., not plain obj or detached DOM) if ( tmp === ( elem.ownerDocument || document ) ) { eventPath.push( tmp.defaultView || tmp.parentWindow || window ); } } // Fire handlers on the event path i = 0; while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { lastElement = cur; event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); } // Native handler handle = ontype && cur[ ontype ]; if ( handle && handle.apply && acceptData( cur ) ) { event.result = handle.apply( cur, data ); if ( event.result === false ) { event.preventDefault(); } } } event.type = type; // If nobody prevented the default action, do it now if ( !onlyHandlers && !event.isDefaultPrevented() ) { if ( ( !special._default || special._default.apply( eventPath.pop(), data ) === false ) && acceptData( elem ) ) { // Call a native DOM method on the target with the same name as the event. // Don't do default actions on window, that's where global variables be (#6170) if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { // Don't re-trigger an onFOO event when we call its FOO() method tmp = elem[ ontype ]; if ( tmp ) { elem[ ontype ] = null; } // Prevent re-triggering of the same event, since we already bubbled it above jQuery.event.triggered = type; if ( event.isPropagationStopped() ) { lastElement.addEventListener( type, stopPropagationCallback ); } elem[ type ](); if ( event.isPropagationStopped() ) { lastElement.removeEventListener( type, stopPropagationCallback ); } jQuery.event.triggered = undefined; if ( tmp ) { elem[ ontype ] = tmp; } } } } return event.result; }, // Piggyback on a donor event to simulate a different one // Used only for `focus(in | out)` events simulate: function( type, elem, event ) { var e = jQuery.extend( new jQuery.Event(), event, { type: type, isSimulated: true } ); jQuery.event.trigger( e, null, elem ); } } ); jQuery.fn.extend( { trigger: function( type, data ) { return this.each( function() { jQuery.event.trigger( type, data, this ); } ); }, triggerHandler: function( type, data ) { var elem = this[ 0 ]; if ( elem ) { return jQuery.event.trigger( type, data, elem, true ); } } } ); // Support: Firefox <=44 // Firefox doesn't have focus(in | out) events // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 // // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 // focus(in | out) events fire after focus & blur events, // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 if ( !support.focusin ) { jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { // Attach a single capturing handler on the document while someone wants focusin/focusout var handler = function( event ) { jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); }; jQuery.event.special[ fix ] = { setup: function() { // Handle: regular nodes (via `this.ownerDocument`), window // (via `this.document`) & document (via `this`). var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { doc.addEventListener( orig, handler, true ); } dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { doc.removeEventListener( orig, handler, true ); dataPriv.remove( doc, fix ); } else { dataPriv.access( doc, fix, attaches ); } } }; } ); } var location = window.location; var nonce = { guid: Date.now() }; var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } // Support: IE 9 - 11 only // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); } catch ( e ) {} parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; if ( !xml || parserErrorElem ) { jQuery.error( "Invalid XML: " + ( parserErrorElem ? jQuery.map( parserErrorElem.childNodes, function( el ) { return el.textContent; } ).join( "\n" ) : data ) ); } return xml; }; var rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; function buildParams( prefix, obj, traditional, add ) { var name; if ( Array.isArray( obj ) ) { // Serialize array item. jQuery.each( obj, function( i, v ) { if ( traditional || rbracket.test( prefix ) ) { // Treat each array item as a scalar. add( prefix, v ); } else { // Item is non-scalar (array or object), encode its numeric index. buildParams( prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", v, traditional, add ); } } ); } else if ( !traditional && toType( obj ) === "object" ) { // Serialize object item. for ( name in obj ) { buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); } } else { // Serialize scalar item. add( prefix, obj ); } } // Serialize an array of form elements or a set of // key/values into a query string jQuery.param = function( a, traditional ) { var prefix, s = [], add = function( key, valueOrFunction ) { // If value is a function, invoke it and use its return value var value = isFunction( valueOrFunction ) ? valueOrFunction() : valueOrFunction; s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value == null ? "" : value ); }; if ( a == null ) { return ""; } // If an array was passed in, assume that it is an array of form elements. if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); } ); } else { // If traditional, encode the "old" way (the way 1.3.2 or older // did it), otherwise encode params recursively. for ( prefix in a ) { buildParams( prefix, a[ prefix ], traditional, add ); } } // Return the resulting serialization return s.join( "&" ); }; jQuery.fn.extend( { serialize: function() { return jQuery.param( this.serializeArray() ); }, serializeArray: function() { return this.map( function() { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { return null; } if ( Array.isArray( val ) ) { return jQuery.map( val, function( val ) { return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; } ); } return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; } ).get(); } } ); var r20 = /%20/g, rhash = /#.*$/, rantiCache = /([?&])_=[^&]*/, rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, // #7653, #8125, #8152: local protocol detection rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, /* Prefilters * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) * 2) These are called: * - BEFORE asking for a transport * - AFTER param serialization (s.data is a string if s.processData is true) * 3) key is the dataType * 4) the catchall symbol "*" can be used * 5) execution will start with transport dataType and THEN continue down to "*" if needed */ prefilters = {}, /* Transports bindings * 1) key is the dataType * 2) the catchall symbol "*" can be used * 3) selection will start with transport dataType and THEN go to "*" if needed */ transports = {}, // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression allTypes = "*/".concat( "*" ), // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { // dataTypeExpression is optional and defaults to "*" return function( dataTypeExpression, func ) { if ( typeof dataTypeExpression !== "string" ) { func = dataTypeExpression; dataTypeExpression = "*"; } var dataType, i = 0, dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; if ( isFunction( func ) ) { // For each dataType in the dataTypeExpression while ( ( dataType = dataTypes[ i++ ] ) ) { // Prepend if requested if ( dataType[ 0 ] === "+" ) { dataType = dataType.slice( 1 ) || "*"; ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); // Otherwise append } else { ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); } } } }; } // Base inspection function for prefilters and transports function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { var inspected = {}, seekingTransport = ( structure === transports ); function inspect( dataType ) { var selected; inspected[ dataType ] = true; jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { options.dataTypes.unshift( dataTypeOrTransport ); inspect( dataTypeOrTransport ); return false; } else if ( seekingTransport ) { return !( selected = dataTypeOrTransport ); } } ); return selected; } return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); } // A special extend for ajax options // that takes "flat" options (not to be deep extended) // Fixes #9887 function ajaxExtend( target, src ) { var key, deep, flatOptions = jQuery.ajaxSettings.flatOptions || {}; for ( key in src ) { if ( src[ key ] !== undefined ) { ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; } } if ( deep ) { jQuery.extend( true, target, deep ); } return target; } /* Handles responses to an ajax request: * - finds the right dataType (mediates between content-type and expected dataType) * - returns the corresponding response */ function ajaxHandleResponses( s, jqXHR, responses ) { var ct, type, finalDataType, firstDataType, contents = s.contents, dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process while ( dataTypes[ 0 ] === "*" ) { dataTypes.shift(); if ( ct === undefined ) { ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); } } // Check if we're dealing with a known content-type if ( ct ) { for ( type in contents ) { if ( contents[ type ] && contents[ type ].test( ct ) ) { dataTypes.unshift( type ); break; } } } // Check to see if we have a response for the expected dataType if ( dataTypes[ 0 ] in responses ) { finalDataType = dataTypes[ 0 ]; } else { // Try convertible dataTypes for ( type in responses ) { if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { finalDataType = type; break; } if ( !firstDataType ) { firstDataType = type; } } // Or just use first one finalDataType = finalDataType || firstDataType; } // If we found a dataType // We add the dataType to the list if needed // and return the corresponding response if ( finalDataType ) { if ( finalDataType !== dataTypes[ 0 ] ) { dataTypes.unshift( finalDataType ); } return responses[ finalDataType ]; } } /* Chain conversions given the request and the original response * Also sets the responseXXX fields on the jqXHR instance */ function ajaxConvert( s, response, jqXHR, isSuccess ) { var conv2, current, conv, tmp, prev, converters = {}, // Work with a copy of dataTypes in case we need to modify it for conversion dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys if ( dataTypes[ 1 ] ) { for ( conv in s.converters ) { converters[ conv.toLowerCase() ] = s.converters[ conv ]; } } current = dataTypes.shift(); // Convert to each sequential dataType while ( current ) { if ( s.responseFields[ current ] ) { jqXHR[ s.responseFields[ current ] ] = response; } // Apply the dataFilter if provided if ( !prev && isSuccess && s.dataFilter ) { response = s.dataFilter( response, s.dataType ); } prev = current; current = dataTypes.shift(); if ( current ) { // There's only work to do if current dataType is non-auto if ( current === "*" ) { current = prev; // Convert response if prev dataType is non-auto and differs from current } else if ( prev !== "*" && prev !== current ) { // Seek a direct converter conv = converters[ prev + " " + current ] || converters[ "* " + current ]; // If none found, seek a pair if ( !conv ) { for ( conv2 in converters ) { // If conv2 outputs current tmp = conv2.split( " " ); if ( tmp[ 1 ] === current ) { // If prev can be converted to accepted input conv = converters[ prev + " " + tmp[ 0 ] ] || converters[ "* " + tmp[ 0 ] ]; if ( conv ) { // Condense equivalence converters if ( conv === true ) { conv = converters[ conv2 ]; // Otherwise, insert the intermediate dataType } else if ( converters[ conv2 ] !== true ) { current = tmp[ 0 ]; dataTypes.unshift( tmp[ 1 ] ); } break; } } } } // Apply converter (if not an equivalence) if ( conv !== true ) { // Unless errors are allowed to bubble, catch and return them if ( conv && s.throws ) { response = conv( response ); } else { try { response = conv( response ); } catch ( e ) { return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; } } } } } } return { state: "success", data: response }; } jQuery.extend( { // Counter for holding the number of active queries active: 0, // Last-Modified header cache for next request lastModified: {}, etag: {}, ajaxSettings: { url: location.href, type: "GET", isLocal: rlocalProtocol.test( location.protocol ), global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", /* timeout: 0, data: null, dataType: null, username: null, password: null, cache: null, throws: false, traditional: false, headers: {}, */ accepts: { "*": allTypes, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, // Data converters // Keys separate source (or catchall "*") and destination types with a single space converters: { // Convert anything to text "* text": String, // Text to html (true = no transformation) "text html": true, // Evaluate text as a json expression "text json": JSON.parse, // Parse text as xml "text xml": jQuery.parseXML }, // For options that shouldn't be deep extended: // you can add your own custom options here if // and when you create one that shouldn't be // deep extended (see ajaxExtend) flatOptions: { url: true, context: true } }, // Creates a full fledged settings object into target // with both ajaxSettings and settings fields. // If target is omitted, writes into ajaxSettings. ajaxSetup: function( target, settings ) { return settings ? // Building a settings object ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : // Extending ajaxSettings ajaxExtend( jQuery.ajaxSettings, target ); }, ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), ajaxTransport: addToPrefiltersOrTransports( transports ), // Main method ajax: function( url, options ) { // If url is an object, simulate pre-1.5 signature if ( typeof url === "object" ) { options = url; url = undefined; } // Force options to be an object options = options || {}; var transport, // URL without anti-cache param cacheURL, // Response headers responseHeadersString, responseHeaders, // timeout handle timeoutTimer, // Url cleanup var urlAnchor, // Request state (becomes false upon send and true upon completion) completed, // To know if global events are to be dispatched fireGlobals, // Loop variable i, // uncached part of the url uncached, // Create the final options object s = jQuery.ajaxSetup( {}, options ), // Callbacks context callbackContext = s.context || s, // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? jQuery( callbackContext ) : jQuery.event, // Deferreds deferred = jQuery.Deferred(), completeDeferred = jQuery.Callbacks( "once memory" ), // Status-dependent callbacks statusCode = s.statusCode || {}, // Headers (they are sent all at once) requestHeaders = {}, requestHeadersNames = {}, // Default abort message strAbort = "canceled", // Fake xhr jqXHR = { readyState: 0, // Builds headers hashtable if needed getResponseHeader: function( key ) { var match; if ( completed ) { if ( !responseHeaders ) { responseHeaders = {}; while ( ( match = rheaders.exec( responseHeadersString ) ) ) { responseHeaders[ match[ 1 ].toLowerCase() + " " ] = ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) .concat( match[ 2 ] ); } } match = responseHeaders[ key.toLowerCase() + " " ]; } return match == null ? null : match.join( ", " ); }, // Raw string getAllResponseHeaders: function() { return completed ? responseHeadersString : null; }, // Caches the header setRequestHeader: function( name, value ) { if ( completed == null ) { name = requestHeadersNames[ name.toLowerCase() ] = requestHeadersNames[ name.toLowerCase() ] || name; requestHeaders[ name ] = value; } return this; }, // Overrides response content-type header overrideMimeType: function( type ) { if ( completed == null ) { s.mimeType = type; } return this; }, // Status-dependent callbacks statusCode: function( map ) { var code; if ( map ) { if ( completed ) { // Execute the appropriate callbacks jqXHR.always( map[ jqXHR.status ] ); } else { // Lazy-add the new callbacks in a way that preserves old ones for ( code in map ) { statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; } } } return this; }, // Cancel the request abort: function( statusText ) { var finalText = statusText || strAbort; if ( transport ) { transport.abort( finalText ); } done( 0, finalText ); return this; } }; // Attach deferreds deferred.promise( jqXHR ); // Add protocol if not provided (prefilters might expect it) // Handle falsy url in the settings object (#10093: consistency with old signature) // We also use the url parameter if available s.url = ( ( url || s.url || location.href ) + "" ) .replace( rprotocol, location.protocol + "//" ); // Alias method option to type as per ticket #12004 s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; // A cross-domain request is in order when the origin doesn't match the current origin. if ( s.crossDomain == null ) { urlAnchor = document.createElement( "a" ); // Support: IE <=8 - 11, Edge 12 - 15 // IE throws exception on accessing the href property if url is malformed, // e.g. http://example.com:80x/ try { urlAnchor.href = s.url; // Support: IE <=8 - 11 only // Anchor's host property isn't correctly set when s.url is relative urlAnchor.href = urlAnchor.href; s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; } catch ( e ) { // If there is an error parsing the URL, assume it is crossDomain, // it can be rejected by the transport if it is invalid s.crossDomain = true; } } // Convert data if not already a string if ( s.data && s.processData && typeof s.data !== "string" ) { s.data = jQuery.param( s.data, s.traditional ); } // Apply prefilters inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); // If request was aborted inside a prefilter, stop there if ( completed ) { return jqXHR; } // We can fire global events as of now if asked to // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) fireGlobals = jQuery.event && s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); } // Uppercase the type s.type = s.type.toUpperCase(); // Determine if request has content s.hasContent = !rnoContent.test( s.type ); // Save the URL in case we're toying with the If-Modified-Since // and/or If-None-Match header later on // Remove hash to simplify url manipulation cacheURL = s.url.replace( rhash, "" ); // More options handling for requests with no content if ( !s.hasContent ) { // Remember the hash so we can put it back uncached = s.url.slice( cacheURL.length ); // If data is available and should be processed, append data to url if ( s.data && ( s.processData || typeof s.data === "string" ) ) { cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; // #9682: remove data so that it's not used in an eventual retry delete s.data; } // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658) } else if ( s.data && s.processData && ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { s.data = s.data.replace( r20, "+" ); } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { if ( jQuery.lastModified[ cacheURL ] ) { jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); } if ( jQuery.etag[ cacheURL ] ) { jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); } } // Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { jqXHR.setRequestHeader( "Content-Type", s.contentType ); } // Set the Accepts header for the server, depending on the dataType jqXHR.setRequestHeader( "Accept", s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? s.accepts[ s.dataTypes[ 0 ] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : s.accepts[ "*" ] ); // Check for headers option for ( i in s.headers ) { jqXHR.setRequestHeader( i, s.headers[ i ] ); } // Allow custom headers/mimetypes and early abort if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { // Abort if not done already and return return jqXHR.abort(); } // Aborting is no longer a cancellation strAbort = "abort"; // Install callbacks on deferreds completeDeferred.add( s.complete ); jqXHR.done( s.success ); jqXHR.fail( s.error ); // Get transport transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); // If no transport, we auto-abort if ( !transport ) { done( -1, "No Transport" ); } else { jqXHR.readyState = 1; // Send global event if ( fireGlobals ) { globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); } // If request was aborted inside ajaxSend, stop there if ( completed ) { return jqXHR; } // Timeout if ( s.async && s.timeout > 0 ) { timeoutTimer = window.setTimeout( function() { jqXHR.abort( "timeout" ); }, s.timeout ); } try { completed = false; transport.send( requestHeaders, done ); } catch ( e ) { // Rethrow post-completion exceptions if ( completed ) { throw e; } // Propagate others as results done( -1, e ); } } // Callback for when everything is done function done( status, nativeStatusText, responses, headers ) { var isSuccess, success, error, response, modified, statusText = nativeStatusText; // Ignore repeat invocations if ( completed ) { return; } completed = true; // Clear timeout if it exists if ( timeoutTimer ) { window.clearTimeout( timeoutTimer ); } // Dereference transport for early garbage collection // (no matter how long the jqXHR object will be used) transport = undefined; // Cache response headers responseHeadersString = headers || ""; // Set readyState jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful isSuccess = status >= 200 && status < 300 || status === 304; // Get response data if ( responses ) { response = ajaxHandleResponses( s, jqXHR, responses ); } // Use a noop converter for missing script but not if jsonp if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 && jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); // If successful, handle type chaining if ( isSuccess ) { // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { modified = jqXHR.getResponseHeader( "Last-Modified" ); if ( modified ) { jQuery.lastModified[ cacheURL ] = modified; } modified = jqXHR.getResponseHeader( "etag" ); if ( modified ) { jQuery.etag[ cacheURL ] = modified; } } // if no content if ( status === 204 || s.type === "HEAD" ) { statusText = "nocontent"; // if not modified } else if ( status === 304 ) { statusText = "notmodified"; // If we have data, let's convert it } else { statusText = response.state; success = response.data; error = response.error; isSuccess = !error; } } else { // Extract error from statusText and normalize for non-aborts error = statusText; if ( status || !statusText ) { statusText = "error"; if ( status < 0 ) { status = 0; } } } // Set data for the fake xhr object jqXHR.status = status; jqXHR.statusText = ( nativeStatusText || statusText ) + ""; // Success/Error if ( isSuccess ) { deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); } else { deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); } // Status-dependent callbacks jqXHR.statusCode( statusCode ); statusCode = undefined; if ( fireGlobals ) { globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", [ jqXHR, s, isSuccess ? success : error ] ); } // Complete completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); if ( fireGlobals ) { globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); // Handle the global AJAX counter if ( !( --jQuery.active ) ) { jQuery.event.trigger( "ajaxStop" ); } } } return jqXHR; }, getJSON: function( url, data, callback ) { return jQuery.get( url, data, callback, "json" ); }, getScript: function( url, callback ) { return jQuery.get( url, undefined, callback, "script" ); } } ); jQuery.each( [ "get", "post" ], function( _i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted if ( isFunction( data ) ) { type = type || callback; callback = data; data = undefined; } // The url can be an options object (which then must have .url) return jQuery.ajax( jQuery.extend( { url: url, type: method, dataType: type, data: data, success: callback }, jQuery.isPlainObject( url ) && url ) ); }; } ); jQuery.ajaxPrefilter( function( s ) { var i; for ( i in s.headers ) { if ( i.toLowerCase() === "content-type" ) { s.contentType = s.headers[ i ] || ""; } } } ); jQuery._evalUrl = function( url, options, doc ) { return jQuery.ajax( { url: url, // Make this explicit, since user can override this through ajaxSetup (#11264) type: "GET", dataType: "script", cache: true, async: false, global: false, // Only evaluate the response if it is successful (gh-4126) // dataFilter is not invoked for failure responses, so using it instead // of the default converter is kludgy but it works. converters: { "text script": function() {} }, dataFilter: function( response ) { jQuery.globalEval( response, options, doc ); } } ); }; jQuery.fn.extend( { wrapAll: function( html ) { var wrap; if ( this[ 0 ] ) { if ( isFunction( html ) ) { html = html.call( this[ 0 ] ); } // The elements to wrap the target around wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); if ( this[ 0 ].parentNode ) { wrap.insertBefore( this[ 0 ] ); } wrap.map( function() { var elem = this; while ( elem.firstElementChild ) { elem = elem.firstElementChild; } return elem; } ).append( this ); } return this; }, wrapInner: function( html ) { if ( isFunction( html ) ) { return this.each( function( i ) { jQuery( this ).wrapInner( html.call( this, i ) ); } ); } return this.each( function() { var self = jQuery( this ), contents = self.contents(); if ( contents.length ) { contents.wrapAll( html ); } else { self.append( html ); } } ); }, wrap: function( html ) { var htmlIsFunction = isFunction( html ); return this.each( function( i ) { jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); } ); }, unwrap: function( selector ) { this.parent( selector ).not( "body" ).each( function() { jQuery( this ).replaceWith( this.childNodes ); } ); return this; } } ); jQuery.expr.pseudos.hidden = function( elem ) { return !jQuery.expr.pseudos.visible( elem ); }; jQuery.expr.pseudos.visible = function( elem ) { return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); }; jQuery.ajaxSettings.xhr = function() { try { return new window.XMLHttpRequest(); } catch ( e ) {} }; var xhrSuccessStatus = { // File protocol always yields status code 0, assume 200 0: 200, // Support: IE <=9 only // #1450: sometimes IE returns 1223 when it should be 204 1223: 204 }, xhrSupported = jQuery.ajaxSettings.xhr(); support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); support.ajax = xhrSupported = !!xhrSupported; jQuery.ajaxTransport( function( options ) { var callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest if ( support.cors || xhrSupported && !options.crossDomain ) { return { send: function( headers, complete ) { var i, xhr = options.xhr(); xhr.open( options.type, options.url, options.async, options.username, options.password ); // Apply custom fields if provided if ( options.xhrFields ) { for ( i in options.xhrFields ) { xhr[ i ] = options.xhrFields[ i ]; } } // Override mime type if needed if ( options.mimeType && xhr.overrideMimeType ) { xhr.overrideMimeType( options.mimeType ); } // X-Requested-With header // For cross-domain requests, seeing as conditions for a preflight are // akin to a jigsaw puzzle, we simply never set it to be sure. // (it can always be set on a per-request basis or even using ajaxSetup) // For same-domain requests, won't change header if already provided. if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { headers[ "X-Requested-With" ] = "XMLHttpRequest"; } // Set headers for ( i in headers ) { xhr.setRequestHeader( i, headers[ i ] ); } // Callback callback = function( type ) { return function() { if ( callback ) { callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null; if ( type === "abort" ) { xhr.abort(); } else if ( type === "error" ) { // Support: IE <=9 only // On a manual native abort, IE9 throws // errors on any property access that is not readyState if ( typeof xhr.status !== "number" ) { complete( 0, "error" ); } else { complete( // File: protocol always yields status 0; see #8605, #14207 xhr.status, xhr.statusText ); } } else { complete( xhrSuccessStatus[ xhr.status ] || xhr.status, xhr.statusText, // Support: IE <=9 only // IE9 has no XHR2 but throws on binary (trac-11426) // For XHR2 non-text, let the caller handle it (gh-2498) ( xhr.responseType || "text" ) !== "text" || typeof xhr.responseText !== "string" ? { binary: xhr.response } : { text: xhr.responseText }, xhr.getAllResponseHeaders() ); } } }; }; // Listen to events xhr.onload = callback(); errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); // Support: IE 9 only // Use onreadystatechange to replace onabort // to handle uncaught aborts if ( xhr.onabort !== undefined ) { xhr.onabort = errorCallback; } else { xhr.onreadystatechange = function() { // Check readyState before timeout as it changes if ( xhr.readyState === 4 ) { // Allow onerror to be called first, // but that will not handle a native abort // Also, save errorCallback to a variable // as xhr.onerror cannot be accessed window.setTimeout( function() { if ( callback ) { errorCallback(); } } ); } }; } // Create the abort callback callback = callback( "abort" ); try { // Do send the request (this may raise an exception) xhr.send( options.hasContent && options.data || null ); } catch ( e ) { // #14683: Only rethrow if this hasn't been notified as an error yet if ( callback ) { throw e; } } }, abort: function() { if ( callback ) { callback(); } } }; } } ); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) jQuery.ajaxPrefilter( function( s ) { if ( s.crossDomain ) { s.contents.script = false; } } ); // Install script dataType jQuery.ajaxSetup( { accepts: { script: "text/javascript, application/javascript, " + "application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function( text ) { jQuery.globalEval( text ); return text; } } } ); // Handle cache's special case and crossDomain jQuery.ajaxPrefilter( "script", function( s ) { if ( s.cache === undefined ) { s.cache = false; } if ( s.crossDomain ) { s.type = "GET"; } } ); // Bind script tag hack transport jQuery.ajaxTransport( "script", function( s ) { // This transport only deals with cross domain or forced-by-attrs requests if ( s.crossDomain || s.scriptAttrs ) { var script, callback; return { send: function( _, complete ) { script = jQuery( "

About

pyfuse3 is a set of Python 3 bindings for libfuse 3. It provides an asynchronous API compatible with Trio and asyncio, and enables you to easily write a full-featured Linux filesystem in Python.

pyfuse3 releases can be downloaded from PyPi. The documentation can be read online and is also included in the doc/html directory of the pyfuse3 tarball.

Getting Help

Please report any bugs on the issue tracker. For discussion and questions, please use the general FUSE mailing list. A searchable mailing list archive is kindly provided by Gmane.

Development Status

pyfuse3 is in beta. Bugs are likely.

pyfuse3 uses semantic versioning. This means backwards incompatible changes in the API will be reflected in an increase of the major version number.

Contributing

The pyfuse3 source code is available on GitHub.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/asyncio.html0000664000175000017500000001447514463757444015124 0ustar00twtw asyncio Support — pyfuse3 3.3.0 documentation

asyncio Support

By default, pyfuse3 uses asynchronous I/O using Trio (and most of the documentation assumes that you are using Trio). If you’d rather use asyncio, import the pyfuse3_asyncio module and call its enable() function before using pyfuse3. For example:

import pyfuse3
import pyfuse3_asyncio

pyfuse3_asyncio.enable()

# Use pyfuse3 as usual from here on.
././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/changes.html0000664000175000017500000003150014463757444015053 0ustar00twtw Changelog — pyfuse3 3.3.0 documentation

Changelog

Release 3.3.0 (2023-08-06)

  • Note: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported.

  • Cythonized with latest Cython 3.0.0.

  • Drop Python 3.6 and 3.7 support and testing, #71.

  • CI: also test python 3.12. test on cython 0.29 and cython 3.0.

  • Tell Cython that callbacks may raise exceptions, #80.

  • Fix lookup in examples/hello.py, similar to #16.

  • Misc. CI, testing, build and sphinx related fixes.

Release 3.2.3 (2023-05-09)

  • cythonize with latest Cython 0.29.34 (brings Python 3.12 support)

  • add a minimal pyproject.toml, require setuptools

  • tests: fix integer overflow on 32-bit arches, fixes #47

  • test: Use shutil.which() instead of external which(1) program

  • setup.py: catch more generic OSError when searching Cython, fixes #63

  • setup.py: require Cython >= 0.29

  • fix basedir computation in setup.py (fix pip install -e .)

  • use sphinx < 6.0 due to compatibility issues with more recent versions

Release 3.2.2 (2022-09-28)

  • remove support for python 3.5 (broken, out of support by python devs)

  • cythonize with latest Cython 0.29.x (brings Python 3.11 support)

  • use github actions for CI, remove travis-ci

  • update README: minimal maintenance, not developed

  • update setup.py with tested python versions

  • examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing.

Release 3.2.1 (2021-09-17)

  • Add type annotations

  • Passing a XATTR_CREATE or XATTR_REPLACE to setxattr() is now working correctly.

Release 3.2.0 (2020-12-30)

  • Fix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500.

  • There is a new pyfuse3.terminate() function to gracefully end the main loop.

Release 3.1.1 (2020-10-06)

  • No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility.

Release 3.1.0 (2020-05-31)

  • Made compatible with newest Trio module.

Release 3.0.0 (2020-05-08)

  • Changed create handler to return a FileInfo struct to allow for modification of certain kernel file attributes, e.g. direct_io.

    Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.

Release 2.0.0

  • Changed open handler to return the new FileInfo struct to allow for modification of certain kernel file attributes, e.g. direct_io.

    Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.

Release 1.3.1 (2019-07-17)

  • Fixed a bug in the hello_asyncio.py example.

Release 1.3 (2019-06-02)

  • Fixed a bug in the tmpfs.py and passthroughfs.py example file systems (so rename operations no longer fail).

Release 1.2 (2018-12-22)

  • Clarified that invalidate_inode may block in some circumstances.

  • Added support for using the asyncio module instead of Trio.

Release 1.1 (2018-11-02)

  • Fixed examples/passthroughfs.py - was not handling readdir() correctly.

  • invalidate_entry_async now accepts an additional ignore_enoent parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed.

Release 1.0 (2018-10-08)

  • Added a new syncfs function.

Release 0.9 (2018-09-27)

  • First release

  • pyfuse3 was forked from python-llfuse - thanks for all the work!

  • If you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344676.0 pyfuse3-3.3.0/doc/html/data.html0000664000175000017500000002162214463757444014360 0ustar00twtw Data Structures — pyfuse3 3.3.0 documentation

Data Structures

pyfuse3.ENOATTR

This errorcode is unfortunately missing in the errno module, so it is provided by pyfuse3 instead.

pyfuse3.ROOT_INODE

The inode of the root directory, i.e. the mount point of the file system.

pyfuse3.RENAME_EXCHANGE

A flag that may be passed to the rename handler. When passed, the handler must atomically exchange the two paths (which must both exist).

pyfuse3.RENAME_NOREPLACE

A flag that may be passed to the rename handler. When passed, the handler must not replace an existing target.

pyfuse3.default_options

This is a recommended set of options that should be passed to pyfuse3.init to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason.

(The fsname=<foo> option is guaranteed never to be included in the default options, so you can always safely add it to the set).

The default options are:

  • default_permissions enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/example.html0000664000175000017500000066152214463757445015114 0ustar00twtw Example File Systems — pyfuse3 3.3.0 documentation

Example File Systems

pyfuse3 comes with several example file systems in the examples directory of the release tarball. For completeness, these examples are also included here.

Single-file, Read-only File System

(shipped as examples/lltest.py)

  1#!/usr/bin/env python3
  2# -*- coding: utf-8 -*-
  3'''
  4hello.py - Example file system for pyfuse3.
  5
  6This program presents a static file system containing a single file.
  7
  8Copyright © 2015 Nikolaus Rath <Nikolaus.org>
  9Copyright © 2015 Gerion Entrup.
 10
 11Permission is hereby granted, free of charge, to any person obtaining a copy of
 12this software and associated documentation files (the "Software"), to deal in
 13the Software without restriction, including without limitation the rights to
 14use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 15the Software, and to permit persons to whom the Software is furnished to do so.
 16
 17THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 18IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 19FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 20COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 21IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 22CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23'''
 24
 25import os
 26import sys
 27
 28# If we are running from the pyfuse3 source directory, try
 29# to load the module from there first.
 30basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
 31if (os.path.exists(os.path.join(basedir, 'setup.py')) and
 32    os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))):
 33    sys.path.insert(0, os.path.join(basedir, 'src'))
 34
 35from argparse import ArgumentParser
 36import stat
 37import logging
 38import errno
 39import pyfuse3
 40import trio
 41
 42try:
 43    import faulthandler
 44except ImportError:
 45    pass
 46else:
 47    faulthandler.enable()
 48
 49log = logging.getLogger(__name__)
 50
 51class TestFs(pyfuse3.Operations):
 52    def __init__(self):
 53        super(TestFs, self).__init__()
 54        self.hello_name = b"message"
 55        self.hello_inode = pyfuse3.ROOT_INODE+1
 56        self.hello_data = b"hello world\n"
 57
 58    async def getattr(self, inode, ctx=None):
 59        entry = pyfuse3.EntryAttributes()
 60        if inode == pyfuse3.ROOT_INODE:
 61            entry.st_mode = (stat.S_IFDIR | 0o755)
 62            entry.st_size = 0
 63        elif inode == self.hello_inode:
 64            entry.st_mode = (stat.S_IFREG | 0o644)
 65            entry.st_size = len(self.hello_data)
 66        else:
 67            raise pyfuse3.FUSEError(errno.ENOENT)
 68
 69        stamp = int(1438467123.985654 * 1e9)
 70        entry.st_atime_ns = stamp
 71        entry.st_ctime_ns = stamp
 72        entry.st_mtime_ns = stamp
 73        entry.st_gid = os.getgid()
 74        entry.st_uid = os.getuid()
 75        entry.st_ino = inode
 76
 77        return entry
 78
 79    async def lookup(self, parent_inode, name, ctx=None):
 80        if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name:
 81            raise pyfuse3.FUSEError(errno.ENOENT)
 82        return await self.getattr(self.hello_inode)
 83
 84    async def opendir(self, inode, ctx):
 85        if inode != pyfuse3.ROOT_INODE:
 86            raise pyfuse3.FUSEError(errno.ENOENT)
 87        return inode
 88
 89    async def readdir(self, fh, start_id, token):
 90        assert fh == pyfuse3.ROOT_INODE
 91
 92        # only one entry
 93        if start_id == 0:
 94            pyfuse3.readdir_reply(
 95                token, self.hello_name, await self.getattr(self.hello_inode), 1)
 96        return
 97
 98    async def open(self, inode, flags, ctx):
 99        if inode != self.hello_inode:
100            raise pyfuse3.FUSEError(errno.ENOENT)
101        if flags & os.O_RDWR or flags & os.O_WRONLY:
102            raise pyfuse3.FUSEError(errno.EACCES)
103        return pyfuse3.FileInfo(fh=inode)
104
105    async def read(self, fh, off, size):
106        assert fh == self.hello_inode
107        return self.hello_data[off:off+size]
108
109def init_logging(debug=False):
110    formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: '
111                                  '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
112    handler = logging.StreamHandler()
113    handler.setFormatter(formatter)
114    root_logger = logging.getLogger()
115    if debug:
116        handler.setLevel(logging.DEBUG)
117        root_logger.setLevel(logging.DEBUG)
118    else:
119        handler.setLevel(logging.INFO)
120        root_logger.setLevel(logging.INFO)
121    root_logger.addHandler(handler)
122
123def parse_args():
124    '''Parse command line'''
125
126    parser = ArgumentParser()
127
128    parser.add_argument('mountpoint', type=str,
129                        help='Where to mount the file system')
130    parser.add_argument('--debug', action='store_true', default=False,
131                        help='Enable debugging output')
132    parser.add_argument('--debug-fuse', action='store_true', default=False,
133                        help='Enable FUSE debugging output')
134    return parser.parse_args()
135
136
137def main():
138    options = parse_args()
139    init_logging(options.debug)
140
141    testfs = TestFs()
142    fuse_options = set(pyfuse3.default_options)
143    fuse_options.add('fsname=hello')
144    if options.debug_fuse:
145        fuse_options.add('debug')
146    pyfuse3.init(testfs, options.mountpoint, fuse_options)
147    try:
148        trio.run(pyfuse3.main)
149    except:
150        pyfuse3.close(unmount=False)
151        raise
152
153    pyfuse3.close()
154
155
156if __name__ == '__main__':
157    main()

In-memory File System

(shipped as examples/tmpfs.py)

  1#!/usr/bin/env python3
  2# -*- coding: utf-8 -*-
  3'''
  4tmpfs.py - Example file system for pyfuse3.
  5
  6This file system stores all data in memory.
  7
  8Copyright © 2013 Nikolaus Rath <Nikolaus.org>
  9
 10Permission is hereby granted, free of charge, to any person obtaining a copy of
 11this software and associated documentation files (the "Software"), to deal in
 12the Software without restriction, including without limitation the rights to
 13use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 14the Software, and to permit persons to whom the Software is furnished to do so.
 15
 16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 18FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 19COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 20IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 21CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 22'''
 23
 24import os
 25import sys
 26
 27# If we are running from the pyfuse3 source directory, try
 28# to load the module from there first.
 29basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
 30if (os.path.exists(os.path.join(basedir, 'setup.py')) and
 31    os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))):
 32    sys.path.insert(0, os.path.join(basedir, 'src'))
 33
 34import pyfuse3
 35import errno
 36import stat
 37from time import time
 38import sqlite3
 39import logging
 40from collections import defaultdict
 41from pyfuse3 import FUSEError
 42from argparse import ArgumentParser
 43import trio
 44
 45try:
 46    import faulthandler
 47except ImportError:
 48    pass
 49else:
 50    faulthandler.enable()
 51
 52log = logging.getLogger()
 53
 54class Operations(pyfuse3.Operations):
 55    '''An example filesystem that stores all data in memory
 56
 57    This is a very simple implementation with terrible performance.
 58    Don't try to store significant amounts of data. Also, there are
 59    some other flaws that have not been fixed to keep the code easier
 60    to understand:
 61
 62    * atime, mtime and ctime are not updated
 63    * generation numbers are not supported
 64    * lookup counts are not maintained
 65    '''
 66
 67    enable_writeback_cache = True
 68
 69    def __init__(self):
 70        super(Operations, self).__init__()
 71        self.db = sqlite3.connect(':memory:')
 72        self.db.text_factory = str
 73        self.db.row_factory = sqlite3.Row
 74        self.cursor = self.db.cursor()
 75        self.inode_open_count = defaultdict(int)
 76        self.init_tables()
 77
 78    def init_tables(self):
 79        '''Initialize file system tables'''
 80
 81        self.cursor.execute("""
 82        CREATE TABLE inodes (
 83            id        INTEGER PRIMARY KEY,
 84            uid       INT NOT NULL,
 85            gid       INT NOT NULL,
 86            mode      INT NOT NULL,
 87            mtime_ns  INT NOT NULL,
 88            atime_ns  INT NOT NULL,
 89            ctime_ns  INT NOT NULL,
 90            target    BLOB(256) ,
 91            size      INT NOT NULL DEFAULT 0,
 92            rdev      INT NOT NULL DEFAULT 0,
 93            data      BLOB
 94        )
 95        """)
 96
 97        self.cursor.execute("""
 98        CREATE TABLE contents (
 99            rowid     INTEGER PRIMARY KEY AUTOINCREMENT,
100            name      BLOB(256) NOT NULL,
101            inode     INT NOT NULL REFERENCES inodes(id),
102            parent_inode INT NOT NULL REFERENCES inodes(id),
103
104            UNIQUE (name, parent_inode)
105        )""")
106
107        # Insert root directory
108        now_ns = int(time() * 1e9)
109        self.cursor.execute("INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) "
110                            "VALUES (?,?,?,?,?,?,?)",
111                            (pyfuse3.ROOT_INODE, stat.S_IFDIR | stat.S_IRUSR | stat.S_IWUSR
112                              | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH
113                              | stat.S_IXOTH, os.getuid(), os.getgid(), now_ns, now_ns, now_ns))
114        self.cursor.execute("INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)",
115                            (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE))
116
117
118    def get_row(self, *a, **kw):
119        self.cursor.execute(*a, **kw)
120        try:
121            row = next(self.cursor)
122        except StopIteration:
123            raise NoSuchRowError()
124        try:
125            next(self.cursor)
126        except StopIteration:
127            pass
128        else:
129            raise NoUniqueValueError()
130
131        return row
132
133    async def lookup(self, inode_p, name, ctx=None):
134        if name == '.':
135            inode = inode_p
136        elif name == '..':
137            inode = self.get_row("SELECT * FROM contents WHERE inode=?",
138                                 (inode_p,))['parent_inode']
139        else:
140            try:
141                inode = self.get_row("SELECT * FROM contents WHERE name=? AND parent_inode=?",
142                                     (name, inode_p))['inode']
143            except NoSuchRowError:
144                raise(pyfuse3.FUSEError(errno.ENOENT))
145
146        return await self.getattr(inode, ctx)
147
148
149    async def getattr(self, inode, ctx=None):
150        try:
151            row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,))
152        except NoSuchRowError:
153            raise(pyfuse3.FUSEError(errno.ENOENT))
154
155        entry = pyfuse3.EntryAttributes()
156        entry.st_ino = inode
157        entry.generation = 0
158        entry.entry_timeout = 300
159        entry.attr_timeout = 300
160        entry.st_mode = row['mode']
161        entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?",
162                                     (inode,))[0]
163        entry.st_uid = row['uid']
164        entry.st_gid = row['gid']
165        entry.st_rdev = row['rdev']
166        entry.st_size = row['size']
167
168        entry.st_blksize = 512
169        entry.st_blocks = 1
170        entry.st_atime_ns = row['atime_ns']
171        entry.st_mtime_ns = row['mtime_ns']
172        entry.st_ctime_ns = row['ctime_ns']
173
174        return entry
175
176    async def readlink(self, inode, ctx):
177        return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target']
178
179    async def opendir(self, inode, ctx):
180        return inode
181
182    async def readdir(self, inode, off, token):
183        if off == 0:
184            off = -1
185
186        cursor2 = self.db.cursor()
187        cursor2.execute("SELECT * FROM contents WHERE parent_inode=? "
188                        'AND rowid > ? ORDER BY rowid', (inode, off))
189
190        for row in cursor2:
191            pyfuse3.readdir_reply(
192                token, row['name'], await self.getattr(row['inode']), row['rowid'])
193
194    async def unlink(self, inode_p, name,ctx):
195        entry = await self.lookup(inode_p, name)
196
197        if stat.S_ISDIR(entry.st_mode):
198            raise pyfuse3.FUSEError(errno.EISDIR)
199
200        self._remove(inode_p, name, entry)
201
202    async def rmdir(self, inode_p, name, ctx):
203        entry = await self.lookup(inode_p, name)
204
205        if not stat.S_ISDIR(entry.st_mode):
206            raise pyfuse3.FUSEError(errno.ENOTDIR)
207
208        self._remove(inode_p, name, entry)
209
210    def _remove(self, inode_p, name, entry):
211        if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?",
212                        (entry.st_ino,))[0] > 0:
213            raise pyfuse3.FUSEError(errno.ENOTEMPTY)
214
215        self.cursor.execute("DELETE FROM contents WHERE name=? AND parent_inode=?",
216                        (name, inode_p))
217
218        if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count:
219            self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,))
220
221    async def symlink(self, inode_p, name, target, ctx):
222        mode = (stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
223                stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP |
224                stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH)
225        return await self._create(inode_p, name, mode, ctx, target=target)
226
227    async def rename(self, inode_p_old, name_old, inode_p_new, name_new,
228                     flags, ctx):
229        if flags != 0:
230            raise FUSEError(errno.EINVAL)
231
232        entry_old = await self.lookup(inode_p_old, name_old)
233
234        try:
235            entry_new = await self.lookup(inode_p_new, name_new)
236        except pyfuse3.FUSEError as exc:
237            if exc.errno != errno.ENOENT:
238                raise
239            target_exists = False
240        else:
241            target_exists = True
242
243        if target_exists:
244            self._replace(inode_p_old, name_old, inode_p_new, name_new,
245                          entry_old, entry_new)
246        else:
247            self.cursor.execute("UPDATE contents SET name=?, parent_inode=? WHERE name=? "
248                                "AND parent_inode=?", (name_new, inode_p_new,
249                                                       name_old, inode_p_old))
250
251    def _replace(self, inode_p_old, name_old, inode_p_new, name_new,
252                 entry_old, entry_new):
253
254        if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?",
255                        (entry_new.st_ino,))[0] > 0:
256            raise pyfuse3.FUSEError(errno.ENOTEMPTY)
257
258        self.cursor.execute("UPDATE contents SET inode=? WHERE name=? AND parent_inode=?",
259                            (entry_old.st_ino, name_new, inode_p_new))
260        self.db.execute('DELETE FROM contents WHERE name=? AND parent_inode=?',
261                        (name_old, inode_p_old))
262
263        if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count:
264            self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,))
265
266
267    async def link(self, inode, new_inode_p, new_name, ctx):
268        entry_p = await self.getattr(new_inode_p)
269        if entry_p.st_nlink == 0:
270            log.warning('Attempted to create entry %s with unlinked parent %d',
271                        new_name, new_inode_p)
272            raise FUSEError(errno.EINVAL)
273
274        self.cursor.execute("INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)",
275                            (new_name, inode, new_inode_p))
276
277        return await self.getattr(inode)
278
279    async def setattr(self, inode, attr, fields, fh, ctx):
280
281        if fields.update_size:
282            data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0]
283            if data is None:
284                data = b''
285            if len(data) < attr.st_size:
286                data = data + b'\0' * (attr.st_size - len(data))
287            else:
288                data = data[:attr.st_size]
289            self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?',
290                                (memoryview(data), attr.st_size, inode))
291        if fields.update_mode:
292            self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?',
293                                (attr.st_mode, inode))
294
295        if fields.update_uid:
296            self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?',
297                                (attr.st_uid, inode))
298
299        if fields.update_gid:
300            self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?',
301                                (attr.st_gid, inode))
302
303        if fields.update_atime:
304            self.cursor.execute('UPDATE inodes SET atime_ns=? WHERE id=?',
305                                (attr.st_atime_ns, inode))
306
307        if fields.update_mtime:
308            self.cursor.execute('UPDATE inodes SET mtime_ns=? WHERE id=?',
309                                (attr.st_mtime_ns, inode))
310
311        if fields.update_ctime:
312            self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?',
313                                (attr.st_ctime_ns, inode))
314        else:
315            self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?',
316                                (int(time()*1e9), inode))
317
318        return await self.getattr(inode)
319
320    async def mknod(self, inode_p, name, mode, rdev, ctx):
321        return await self._create(inode_p, name, mode, ctx, rdev=rdev)
322
323    async def mkdir(self, inode_p, name, mode, ctx):
324        return await self._create(inode_p, name, mode, ctx)
325
326    async def statfs(self, ctx):
327        stat_ = pyfuse3.StatvfsData()
328
329        stat_.f_bsize = 512
330        stat_.f_frsize = 512
331
332        size = self.get_row('SELECT SUM(size) FROM inodes')[0]
333        stat_.f_blocks = size // stat_.f_frsize
334        stat_.f_bfree = max(size // stat_.f_frsize, 1024)
335        stat_.f_bavail = stat_.f_bfree
336
337        inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0]
338        stat_.f_files = inodes
339        stat_.f_ffree = max(inodes , 100)
340        stat_.f_favail = stat_.f_ffree
341
342        return stat_
343
344    async def open(self, inode, flags, ctx):
345        # Yeah, unused arguments
346        #pylint: disable=W0613
347        self.inode_open_count[inode] += 1
348
349        # Use inodes as a file handles
350        return pyfuse3.FileInfo(fh=inode)
351
352    async def access(self, inode, mode, ctx):
353        # Yeah, could be a function and has unused arguments
354        #pylint: disable=R0201,W0613
355        return True
356
357    async def create(self, inode_parent, name, mode, flags, ctx):
358        #pylint: disable=W0612
359        entry = await self._create(inode_parent, name, mode, ctx)
360        self.inode_open_count[entry.st_ino] += 1
361        return (pyfuse3.FileInfo(fh=entry.st_ino), entry)
362
363    async def _create(self, inode_p, name, mode, ctx, rdev=0, target=None):
364        if (await self.getattr(inode_p)).st_nlink == 0:
365            log.warning('Attempted to create entry %s with unlinked parent %d',
366                        name, inode_p)
367            raise FUSEError(errno.EINVAL)
368
369        now_ns = int(time() * 1e9)
370        self.cursor.execute('INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, '
371                            'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)',
372                            (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev))
373
374        inode = self.cursor.lastrowid
375        self.db.execute("INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)",
376                        (name, inode, inode_p))
377        return await self.getattr(inode)
378
379    async def read(self, fh, offset, length):
380        data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0]
381        if data is None:
382            data = b''
383        return data[offset:offset+length]
384
385    async def write(self, fh, offset, buf):
386        data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0]
387        if data is None:
388            data = b''
389        data = data[:offset] + buf + data[offset+len(buf):]
390
391        self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?',
392                            (memoryview(data), len(data), fh))
393        return len(buf)
394
395    async def release(self, fh):
396        self.inode_open_count[fh] -= 1
397
398        if self.inode_open_count[fh] == 0:
399            del self.inode_open_count[fh]
400            if (await self.getattr(fh)).st_nlink == 0:
401                self.cursor.execute("DELETE FROM inodes WHERE id=?", (fh,))
402
403class NoUniqueValueError(Exception):
404    def __str__(self):
405        return 'Query generated more than 1 result row'
406
407
408class NoSuchRowError(Exception):
409    def __str__(self):
410        return 'Query produced 0 result rows'
411
412def init_logging(debug=False):
413    formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: '
414                                  '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
415    handler = logging.StreamHandler()
416    handler.setFormatter(formatter)
417    root_logger = logging.getLogger()
418    if debug:
419        handler.setLevel(logging.DEBUG)
420        root_logger.setLevel(logging.DEBUG)
421    else:
422        handler.setLevel(logging.INFO)
423        root_logger.setLevel(logging.INFO)
424    root_logger.addHandler(handler)
425
426def parse_args():
427    '''Parse command line'''
428
429    parser = ArgumentParser()
430
431    parser.add_argument('mountpoint', type=str,
432                        help='Where to mount the file system')
433    parser.add_argument('--debug', action='store_true', default=False,
434                        help='Enable debugging output')
435    parser.add_argument('--debug-fuse', action='store_true', default=False,
436                        help='Enable FUSE debugging output')
437
438    return parser.parse_args()
439
440if __name__ == '__main__':
441
442    options = parse_args()
443    init_logging(options.debug)
444    operations = Operations()
445
446    fuse_options = set(pyfuse3.default_options)
447    fuse_options.add('fsname=tmpfs')
448    fuse_options.discard('default_permissions')
449    if options.debug_fuse:
450        fuse_options.add('debug')
451    pyfuse3.init(operations, options.mountpoint, fuse_options)
452
453    try:
454        trio.run(pyfuse3.main)
455    except:
456        pyfuse3.close(unmount=False)
457        raise
458
459    pyfuse3.close()

Passthrough / Overlay File System

(shipped as examples/passthroughfs.py)

  1#!/usr/bin/env python3
  2'''
  3passthroughfs.py - Example file system for pyfuse3
  4
  5This file system mirrors the contents of a specified directory tree.
  6
  7Caveats:
  8
  9 * Inode generation numbers are not passed through but set to zero.
 10
 11 * Block size (st_blksize) and number of allocated blocks (st_blocks) are not
 12   passed through.
 13
 14 * Performance for large directories is not good, because the directory
 15   is always read completely.
 16
 17 * There may be a way to break-out of the directory tree.
 18
 19 * The readdir implementation is not fully POSIX compliant. If a directory
 20   contains hardlinks and is modified during a readdir call, readdir()
 21   may return some of the hardlinked files twice or omit them completely.
 22
 23 * If you delete or rename files in the underlying file system, the
 24   passthrough file system will get confused.
 25
 26Copyright ©  Nikolaus Rath <Nikolaus.org>
 27
 28Permission is hereby granted, free of charge, to any person obtaining a copy of
 29this software and associated documentation files (the "Software"), to deal in
 30the Software without restriction, including without limitation the rights to
 31use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 32the Software, and to permit persons to whom the Software is furnished to do so.
 33
 34THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 35IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 36FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 37COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 38IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 39CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 40'''
 41
 42import os
 43import sys
 44
 45# If we are running from the pyfuse3 source directory, try
 46# to load the module from there first.
 47basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
 48if (os.path.exists(os.path.join(basedir, 'setup.py')) and
 49    os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))):
 50    sys.path.insert(0, os.path.join(basedir, 'src'))
 51
 52import pyfuse3
 53from argparse import ArgumentParser
 54import errno
 55import logging
 56import stat as stat_m
 57from pyfuse3 import FUSEError
 58from os import fsencode, fsdecode
 59from collections import defaultdict
 60import trio
 61
 62import faulthandler
 63faulthandler.enable()
 64
 65log = logging.getLogger(__name__)
 66
 67class Operations(pyfuse3.Operations):
 68
 69    enable_writeback_cache = True
 70
 71    def __init__(self, source):
 72        super().__init__()
 73        self._inode_path_map = { pyfuse3.ROOT_INODE: source }
 74        self._lookup_cnt = defaultdict(lambda : 0)
 75        self._fd_inode_map = dict()
 76        self._inode_fd_map = dict()
 77        self._fd_open_count = dict()
 78
 79    def _inode_to_path(self, inode):
 80        try:
 81            val = self._inode_path_map[inode]
 82        except KeyError:
 83            raise FUSEError(errno.ENOENT)
 84
 85        if isinstance(val, set):
 86            # In case of hardlinks, pick any path
 87            val = next(iter(val))
 88        return val
 89
 90    def _add_path(self, inode, path):
 91        log.debug('_add_path for %d, %s', inode, path)
 92        self._lookup_cnt[inode] += 1
 93
 94        # With hardlinks, one inode may map to multiple paths.
 95        if inode not in self._inode_path_map:
 96            self._inode_path_map[inode] = path
 97            return
 98
 99        val = self._inode_path_map[inode]
100        if isinstance(val, set):
101            val.add(path)
102        elif val != path:
103            self._inode_path_map[inode] = { path, val }
104
105    async def forget(self, inode_list):
106        for (inode, nlookup) in inode_list:
107            if self._lookup_cnt[inode] > nlookup:
108                self._lookup_cnt[inode] -= nlookup
109                continue
110            log.debug('forgetting about inode %d', inode)
111            assert inode not in self._inode_fd_map
112            del self._lookup_cnt[inode]
113            try:
114                del self._inode_path_map[inode]
115            except KeyError: # may have been deleted
116                pass
117
118    async def lookup(self, inode_p, name, ctx=None):
119        name = fsdecode(name)
120        log.debug('lookup for %s in %d', name, inode_p)
121        path = os.path.join(self._inode_to_path(inode_p), name)
122        attr = self._getattr(path=path)
123        if name != '.' and name != '..':
124            self._add_path(attr.st_ino, path)
125        return attr
126
127    async def getattr(self, inode, ctx=None):
128        if inode in self._inode_fd_map:
129            return self._getattr(fd=self._inode_fd_map[inode])
130        else:
131            return self._getattr(path=self._inode_to_path(inode))
132
133    def _getattr(self, path=None, fd=None):
134        assert fd is None or path is None
135        assert not(fd is None and path is None)
136        try:
137            if fd is None:
138                stat = os.lstat(path)
139            else:
140                stat = os.fstat(fd)
141        except OSError as exc:
142            raise FUSEError(exc.errno)
143
144        entry = pyfuse3.EntryAttributes()
145        for attr in ('st_ino', 'st_mode', 'st_nlink', 'st_uid', 'st_gid',
146                     'st_rdev', 'st_size', 'st_atime_ns', 'st_mtime_ns',
147                     'st_ctime_ns'):
148            setattr(entry, attr, getattr(stat, attr))
149        entry.generation = 0
150        entry.entry_timeout = 0
151        entry.attr_timeout = 0
152        entry.st_blksize = 512
153        entry.st_blocks = ((entry.st_size+entry.st_blksize-1) // entry.st_blksize)
154
155        return entry
156
157    async def readlink(self, inode, ctx):
158        path = self._inode_to_path(inode)
159        try:
160            target = os.readlink(path)
161        except OSError as exc:
162            raise FUSEError(exc.errno)
163        return fsencode(target)
164
165    async def opendir(self, inode, ctx):
166        return inode
167
168    async def readdir(self, inode, off, token):
169        path = self._inode_to_path(inode)
170        log.debug('reading %s', path)
171        entries = []
172        for name in os.listdir(path):
173            if name == '.' or name == '..':
174                continue
175            attr = self._getattr(path=os.path.join(path, name))
176            entries.append((attr.st_ino, name, attr))
177
178        log.debug('read %d entries, starting at %d', len(entries), off)
179
180        # This is not fully posix compatible. If there are hardlinks
181        # (two names with the same inode), we don't have a unique
182        # offset to start in between them. Note that we cannot simply
183        # count entries, because then we would skip over entries
184        # (or return them more than once) if the number of directory
185        # entries changes between two calls to readdir().
186        for (ino, name, attr) in sorted(entries):
187            if ino <= off:
188                continue
189            if not pyfuse3.readdir_reply(
190                token, fsencode(name), attr, ino):
191                break
192            self._add_path(attr.st_ino, os.path.join(path, name))
193
194    async def unlink(self, inode_p, name, ctx):
195        name = fsdecode(name)
196        parent = self._inode_to_path(inode_p)
197        path = os.path.join(parent, name)
198        try:
199            inode = os.lstat(path).st_ino
200            os.unlink(path)
201        except OSError as exc:
202            raise FUSEError(exc.errno)
203        if inode in self._lookup_cnt:
204            self._forget_path(inode, path)
205
206    async def rmdir(self, inode_p, name, ctx):
207        name = fsdecode(name)
208        parent = self._inode_to_path(inode_p)
209        path = os.path.join(parent, name)
210        try:
211            inode = os.lstat(path).st_ino
212            os.rmdir(path)
213        except OSError as exc:
214            raise FUSEError(exc.errno)
215        if inode in self._lookup_cnt:
216            self._forget_path(inode, path)
217
218    def _forget_path(self, inode, path):
219        log.debug('forget %s for %d', path, inode)
220        val = self._inode_path_map[inode]
221        if isinstance(val, set):
222            val.remove(path)
223            if len(val) == 1:
224                self._inode_path_map[inode] = next(iter(val))
225        else:
226            del self._inode_path_map[inode]
227
228    async def symlink(self, inode_p, name, target, ctx):
229        name = fsdecode(name)
230        target = fsdecode(target)
231        parent = self._inode_to_path(inode_p)
232        path = os.path.join(parent, name)
233        try:
234            os.symlink(target, path)
235            os.chown(path, ctx.uid, ctx.gid, follow_symlinks=False)
236        except OSError as exc:
237            raise FUSEError(exc.errno)
238        stat = os.lstat(path)
239        self._add_path(stat.st_ino, path)
240        return await self.getattr(stat.st_ino)
241
242    async def rename(self, inode_p_old, name_old, inode_p_new, name_new,
243                     flags, ctx):
244        if flags != 0:
245            raise FUSEError(errno.EINVAL)
246
247        name_old = fsdecode(name_old)
248        name_new = fsdecode(name_new)
249        parent_old = self._inode_to_path(inode_p_old)
250        parent_new = self._inode_to_path(inode_p_new)
251        path_old = os.path.join(parent_old, name_old)
252        path_new = os.path.join(parent_new, name_new)
253        try:
254            os.rename(path_old, path_new)
255            inode = os.lstat(path_new).st_ino
256        except OSError as exc:
257            raise FUSEError(exc.errno)
258        if inode not in self._lookup_cnt:
259            return
260
261        val = self._inode_path_map[inode]
262        if isinstance(val, set):
263            assert len(val) > 1
264            val.add(path_new)
265            val.remove(path_old)
266        else:
267            assert val == path_old
268            self._inode_path_map[inode] = path_new
269
270    async def link(self, inode, new_inode_p, new_name, ctx):
271        new_name = fsdecode(new_name)
272        parent = self._inode_to_path(new_inode_p)
273        path = os.path.join(parent, new_name)
274        try:
275            os.link(self._inode_to_path(inode), path, follow_symlinks=False)
276        except OSError as exc:
277            raise FUSEError(exc.errno)
278        self._add_path(inode, path)
279        return await self.getattr(inode)
280
281    async def setattr(self, inode, attr, fields, fh, ctx):
282        # We use the f* functions if possible so that we can handle
283        # a setattr() call for an inode without associated directory
284        # handle.
285        if fh is None:
286            path_or_fh = self._inode_to_path(inode)
287            truncate = os.truncate
288            chmod = os.chmod
289            chown = os.chown
290            stat = os.lstat
291        else:
292            path_or_fh = fh
293            truncate = os.ftruncate
294            chmod = os.fchmod
295            chown = os.fchown
296            stat = os.fstat
297
298        try:
299            if fields.update_size:
300                truncate(path_or_fh, attr.st_size)
301
302            if fields.update_mode:
303                # Under Linux, chmod always resolves symlinks so we should
304                # actually never get a setattr() request for a symbolic
305                # link.
306                assert not stat_m.S_ISLNK(attr.st_mode)
307                chmod(path_or_fh, stat_m.S_IMODE(attr.st_mode))
308
309            if fields.update_uid:
310                chown(path_or_fh, attr.st_uid, -1, follow_symlinks=False)
311
312            if fields.update_gid:
313                chown(path_or_fh, -1, attr.st_gid, follow_symlinks=False)
314
315            if fields.update_atime and fields.update_mtime:
316                if fh is None:
317                    os.utime(path_or_fh, None, follow_symlinks=False,
318                             ns=(attr.st_atime_ns, attr.st_mtime_ns))
319                else:
320                    os.utime(path_or_fh, None,
321                             ns=(attr.st_atime_ns, attr.st_mtime_ns))
322            elif fields.update_atime or fields.update_mtime:
323                # We can only set both values, so we first need to retrieve the
324                # one that we shouldn't be changing.
325                oldstat = stat(path_or_fh)
326                if not fields.update_atime:
327                    attr.st_atime_ns = oldstat.st_atime_ns
328                else:
329                    attr.st_mtime_ns = oldstat.st_mtime_ns
330                if fh is None:
331                    os.utime(path_or_fh, None, follow_symlinks=False,
332                             ns=(attr.st_atime_ns, attr.st_mtime_ns))
333                else:
334                    os.utime(path_or_fh, None,
335                             ns=(attr.st_atime_ns, attr.st_mtime_ns))
336
337        except OSError as exc:
338            raise FUSEError(exc.errno)
339
340        return await self.getattr(inode)
341
342    async def mknod(self, inode_p, name, mode, rdev, ctx):
343        path = os.path.join(self._inode_to_path(inode_p), fsdecode(name))
344        try:
345            os.mknod(path, mode=(mode & ~ctx.umask), device=rdev)
346            os.chown(path, ctx.uid, ctx.gid)
347        except OSError as exc:
348            raise FUSEError(exc.errno)
349        attr = self._getattr(path=path)
350        self._add_path(attr.st_ino, path)
351        return attr
352
353    async def mkdir(self, inode_p, name, mode, ctx):
354        path = os.path.join(self._inode_to_path(inode_p), fsdecode(name))
355        try:
356            os.mkdir(path, mode=(mode & ~ctx.umask))
357            os.chown(path, ctx.uid, ctx.gid)
358        except OSError as exc:
359            raise FUSEError(exc.errno)
360        attr = self._getattr(path=path)
361        self._add_path(attr.st_ino, path)
362        return attr
363
364    async def statfs(self, ctx):
365        root = self._inode_path_map[pyfuse3.ROOT_INODE]
366        stat_ = pyfuse3.StatvfsData()
367        try:
368            statfs = os.statvfs(root)
369        except OSError as exc:
370            raise FUSEError(exc.errno)
371        for attr in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail',
372                     'f_files', 'f_ffree', 'f_favail'):
373            setattr(stat_, attr, getattr(statfs, attr))
374        stat_.f_namemax = statfs.f_namemax - (len(root)+1)
375        return stat_
376
377    async def open(self, inode, flags, ctx):
378        if inode in self._inode_fd_map:
379            fd = self._inode_fd_map[inode]
380            self._fd_open_count[fd] += 1
381            return pyfuse3.FileInfo(fh=fd)
382        assert flags & os.O_CREAT == 0
383        try:
384            fd = os.open(self._inode_to_path(inode), flags)
385        except OSError as exc:
386            raise FUSEError(exc.errno)
387        self._inode_fd_map[inode] = fd
388        self._fd_inode_map[fd] = inode
389        self._fd_open_count[fd] = 1
390        return pyfuse3.FileInfo(fh=fd)
391
392    async def create(self, inode_p, name, mode, flags, ctx):
393        path = os.path.join(self._inode_to_path(inode_p), fsdecode(name))
394        try:
395            fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC)
396        except OSError as exc:
397            raise FUSEError(exc.errno)
398        attr = self._getattr(fd=fd)
399        self._add_path(attr.st_ino, path)
400        self._inode_fd_map[attr.st_ino] = fd
401        self._fd_inode_map[fd] = attr.st_ino
402        self._fd_open_count[fd] = 1
403        return (pyfuse3.FileInfo(fh=fd), attr)
404
405    async def read(self, fd, offset, length):
406        os.lseek(fd, offset, os.SEEK_SET)
407        return os.read(fd, length)
408
409    async def write(self, fd, offset, buf):
410        os.lseek(fd, offset, os.SEEK_SET)
411        return os.write(fd, buf)
412
413    async def release(self, fd):
414        if self._fd_open_count[fd] > 1:
415            self._fd_open_count[fd] -= 1
416            return
417
418        del self._fd_open_count[fd]
419        inode = self._fd_inode_map[fd]
420        del self._inode_fd_map[inode]
421        del self._fd_inode_map[fd]
422        try:
423            os.close(fd)
424        except OSError as exc:
425            raise FUSEError(exc.errno)
426
427def init_logging(debug=False):
428    formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: '
429                                  '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
430    handler = logging.StreamHandler()
431    handler.setFormatter(formatter)
432    root_logger = logging.getLogger()
433    if debug:
434        handler.setLevel(logging.DEBUG)
435        root_logger.setLevel(logging.DEBUG)
436    else:
437        handler.setLevel(logging.INFO)
438        root_logger.setLevel(logging.INFO)
439    root_logger.addHandler(handler)
440
441
442def parse_args(args):
443    '''Parse command line'''
444
445    parser = ArgumentParser()
446
447    parser.add_argument('source', type=str,
448                        help='Directory tree to mirror')
449    parser.add_argument('mountpoint', type=str,
450                        help='Where to mount the file system')
451    parser.add_argument('--debug', action='store_true', default=False,
452                        help='Enable debugging output')
453    parser.add_argument('--debug-fuse', action='store_true', default=False,
454                        help='Enable FUSE debugging output')
455
456    return parser.parse_args(args)
457
458def main():
459    options = parse_args(sys.argv[1:])
460    init_logging(options.debug)
461    operations = Operations(options.source)
462
463    log.debug('Mounting...')
464    fuse_options = set(pyfuse3.default_options)
465    fuse_options.add('fsname=passthroughfs')
466    if options.debug_fuse:
467        fuse_options.add('debug')
468    pyfuse3.init(operations, options.mountpoint, fuse_options)
469
470    try:
471        log.debug('Entering main loop..')
472        trio.run(pyfuse3.main)
473    except:
474        pyfuse3.close(unmount=False)
475        raise
476
477    log.debug('Unmounting..')
478    pyfuse3.close()
479
480if __name__ == '__main__':
481    main()
././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/fuse_api.html0000664000175000017500000001465714463757445015255 0ustar00twtw FUSE API Functions — pyfuse3 3.3.0 documentation

FUSE API Functions

pyfuse3.trio_token

Set to the value returned by trio.lowlevel.current_trio_token() while main() is running. Can be used by other threads to run code in the main loop through trio.from_thread.run.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/general.html0000664000175000017500000002660714463757445015075 0ustar00twtw General Information — pyfuse3 3.3.0 documentation

General Information

Getting started

A file system is implemented by subclassing the pyfuse3.Operations class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode.

By default, pyfuse3 uses asynchronous I/O using Trio, and most of the documentation assumes that you are using Trio. If you’d rather use asyncio, take a look at asyncio Support. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the Trio tutorial first.

An instance of the operations class is passed to pyfuse3.init to mount the file system. To enter the request handling loop, run pyfuse3.main in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling pyfuse3.close.

All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as bytes and must be returned as bytes.

For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler module.

Lookup Counts

Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the unlink system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.

FUSE file systems achieve this by using “lookup counts”. A lookup count is a number that’s associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.

The lookup count of an inode is increased by every operation that could make the inode “known” to the kernel. This includes e.g. lookup, create and readdir (to determine if a given request handler affects the lookup count, please refer to its description in the Operations class). The lookup count is decreased by calls to the forget handler.

FUSE and VFS Locking

FUSE and the kernel’s VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:

  • Calls to rename, create, symlink, mknod, link and mkdir acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).

  • Calls to lookup acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).

  • Unless writeback caching is enabled, calls to write for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/genindex.html0000664000175000017500000001453514463757445015256 0ustar00twtw Index — pyfuse3 3.3.0 documentation ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/gotchas.html0000664000175000017500000002106314463757445015077 0ustar00twtw Common Gotchas — pyfuse3 3.3.0 documentation

Common Gotchas

This chapter lists some common gotchas that should be avoided.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/index.html0000664000175000017500000001523014463757445014555 0ustar00twtw pyfuse3 Documentation — pyfuse3 3.3.0 documentation ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/install.html0000664000175000017500000002311314463757445015113 0ustar00twtw Installation — pyfuse3 3.3.0 documentation

Installation

Dependencies

In order to build and run pyfuse3 you need the following software:

  • Linux kernel 3.9 or newer.

  • Version 3.3.0 or newer of the libfuse library, including development headers (typically distributions provide them in a libfuse3-devel or libfuse3-dev package).

  • Python 3.8 or newer installed with development headers

  • The Trio Python module, version 0.7 or newer.

  • The setuptools Python module, version 1.0 or newer.

  • the pkg-config tool

  • the attr library

  • A C compiler (only for building)

To run the unit tests, you will need

  • The py.test Python module, version 3.3.0 or newer

Stable releases

To install a stable pyfuse3 release:

  1. Download and unpack the release tarball from https://pypi.python.org/pypi/pyfuse3/

  2. Run python3 setup.py build_ext --inplace to build the C extension

  3. Run python3 -m pytest test/ to run a self-test. If this fails, ask for help on the FUSE mailing list or report a bug in the issue tracker.

  4. To install system-wide for all users, run sudo python setup.py install. To install into ~/.local, run python3 setup.py install --user.

Development Version

If you have checked out the unstable development version, a bit more effort is required. You need to also have Cython (0.29 or newer) and Sphinx (<6.0) installed, and the necessary commands are:

python3 setup.py build_cython
python3 setup.py build_ext --inplace
python3 -m pytest test/
sphinx-build -b html rst doc/html
python3 setup.py install
././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/objects.inv0000664000175000017500000000112114463757445014721 0ustar00twtw# Sphinx inventory version 2 # Project: pyfuse3 # Version: 3.3.0 # The remainder of this file is compressed using zlib. xڍn0/t:zGK_1/b/c~`(S/megjJWaj~雲@ OjH@&aʓjFp`PBjWVk5,yAߘpu?{ 3q a%S# Request Handlers — pyfuse3 3.3.0 documentation

Request Handlers

(You can use the Index to directly jump to a specific handler).

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/py-modindex.html0000664000175000017500000001154214463757445015705 0ustar00twtw Python Module Index — pyfuse3 3.3.0 documentation ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/search.html0000664000175000017500000001115514463757445014715 0ustar00twtw Search — pyfuse3 3.3.0 documentation

Search

Searching for multiple words only shows matches that contain all words.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/searchindex.js0000664000175000017500000004343514463757445015423 0ustar00twtwSearch.setIndex({"docnames": ["about", "asyncio", "changes", "data", "example", "fuse_api", "general", "gotchas", "index", "install", "operations", "util"], "filenames": ["about.rst", "asyncio.rst", "changes.rst", "data.rst", "example.rst", "fuse_api.rst", "general.rst", "gotchas.rst", "index.rst", "install.rst", "operations.rst", "util.rst"], "titles": ["About", "asyncio Support", "Changelog", "Data Structures", "Example File Systems", "FUSE API Functions", "General Information", "Common Gotchas", "pyfuse3 Documentation", "Installation", "Request Handlers", "Utility Functions"], "terms": {"pyfuse3": [0, 1, 2, 3, 4, 5, 6, 9], "i": [0, 1, 2, 3, 4, 5, 6, 7, 9], "set": [0, 2, 3, 4, 5], "python": [0, 2, 9, 11], "3": [0, 9], "bind": 0, "libfus": [0, 2, 9], "It": 0, "provid": [0, 3, 4, 6, 9, 11], "an": [0, 2, 3, 4, 6, 7], "asynchron": [0, 1, 6], "api": [0, 8], "compat": [0, 2, 3, 4], "trio": [0, 1, 2, 4, 5, 6, 9], "asyncio": [0, 2, 6, 8], "enabl": [0, 1, 3, 4, 6], "you": [0, 1, 2, 3, 4, 6, 7, 9, 10], "easili": 0, "write": [0, 4, 6, 7], "full": 0, "featur": 0, "linux": [0, 4, 9], "filesystem": [0, 4], "releas": [0, 4], "can": [0, 3, 4, 5, 6, 10], "download": [0, 9], "from": [0, 1, 2, 3, 4, 6, 9], "pypi": [0, 9], "The": [0, 3, 4, 6, 9, 11], "document": [0, 1, 4, 6], "read": [0, 6, 7], "onlin": 0, "also": [0, 2, 4, 6, 9], "includ": [0, 3, 4, 6, 9], "doc": [0, 9], "html": [0, 9], "directori": [0, 3, 4, 6], "tarbal": [0, 4, 9], "pleas": [0, 6], "report": [0, 9], "ani": [0, 3, 4, 6], "bug": [0, 2, 9], "issu": [0, 2, 9], "tracker": [0, 9], "For": [0, 1, 4, 6], "discuss": 0, "question": 0, "us": [0, 1, 2, 4, 5, 6, 10, 11], "gener": [0, 2, 4, 8], "fuse": [0, 4, 8, 9, 11], "mail": [0, 9], "list": [0, 6, 7, 9], "A": [0, 3, 4, 6, 9], "searchabl": 0, "archiv": 0, "kindli": 0, "gmane": 0, "beta": 0, "ar": [0, 1, 2, 3, 4, 6, 7, 9, 11], "like": [0, 6], "semant": 0, "version": [0, 2], "thi": [0, 2, 3, 4, 6, 7, 9], "mean": [0, 6], "backward": [0, 2], "incompat": 0, "chang": [0, 2, 4], "reflect": 0, "increas": [0, 6], "major": 0, "number": [0, 4, 6], "sourc": [0, 2, 4], "code": [0, 2, 4, 5, 7], "avail": 0, "github": [0, 2], "By": [1, 6], "default": [1, 3, 4, 6], "o": [1, 4, 6, 7], "most": [1, 6], "assum": [1, 6], "If": [1, 2, 4, 6, 7, 9], "d": [1, 4, 6], "rather": [1, 6], "import": [1, 4], "pyfuse3_asyncio": 1, "modul": [1, 2, 3, 4, 6, 9], "call": [1, 2, 4, 6, 11], "its": [1, 6], "function": [1, 2, 4, 6, 8], "befor": [1, 6], "exampl": [1, 2, 6, 8], "usual": 1, "here": [1, 4], "note": [2, 4], "first": [2, 4, 6], "cython": [2, 9], "29": [2, 9], "x": 2, "still": 2, "support": [2, 4, 6, 8], "latest": 2, "drop": 2, "6": [2, 9], "7": [2, 9], "test": [2, 9], "71": 2, "ci": 2, "tell": 2, "callback": 2, "mai": [2, 3, 4, 6], "rais": [2, 4], "except": [2, 4], "80": 2, "fix": [2, 4], "lookup": [2, 4], "hello": [2, 4], "py": [2, 4, 9], "similar": 2, "16": 2, "misc": 2, "build": [2, 9], "sphinx": [2, 9], "relat": 2, "34": 2, "bring": 2, "add": [2, 3, 4], "minim": 2, "pyproject": 2, "toml": 2, "requir": [2, 9], "setuptool": [2, 9], "integ": [2, 4], "overflow": 2, "32": 2, "bit": [2, 9], "arch": 2, "47": 2, "shutil": 2, "which": [2, 3, 6], "instead": [2, 3], "extern": 2, "program": [2, 4], "setup": [2, 4, 9], "catch": 2, "more": [2, 4, 9], "oserror": [2, 4], "when": [2, 3, 6, 7, 11], "search": [2, 8], "63": 2, "basedir": [2, 4], "comput": 2, "pip": 2, "instal": [2, 8], "e": [2, 3, 6], "due": 2, "recent": 2, "remov": [2, 4, 6], "5": 2, "broken": 2, "out": [2, 4, 9], "dev": [2, 9], "action": [2, 4], "travi": 2, "updat": [2, 4], "readm": 2, "mainten": 2, "develop": 2, "tmpf": [2, 4], "work": 2, "around": 2, "strang": 2, "kernel": [2, 3, 6, 9], "behaviour": 2, "setattr": [2, 4], "after": 2, "unlink": [2, 4, 6], "open": [2, 4, 6, 7], "file": [2, 3, 6, 7, 8, 11], "respond": [2, 6], "enoent": [2, 4], "crash": 2, "type": [2, 4], "annot": 2, "pass": [2, 3, 4, 6], "xattr_creat": 2, "xattr_replac": 2, "setxattr": 2, "now": 2, "correctli": [2, 6], "long": 2, "stand": 2, "round": 2, "error": [2, 7], "date": 2, "handl": [2, 4, 6], "nanosecond": 2, "part": 2, "were": 2, "999999500": 2, "There": [2, 4], "new": 2, "termin": 2, "gracefulli": 2, "end": 2, "main": [2, 4, 5, 6], "loop": [2, 4, 5, 6], "No": 2, "regener": 2, "21": 2, "made": 2, "newest": 2, "creat": [2, 4, 6], "handler": [2, 3, 4, 6, 8], "return": [2, 4, 5, 6], "fileinfo": [2, 4], "struct": 2, "allow": 2, "modif": 2, "certain": 2, "attribut": [2, 6], "g": [2, 6], "direct_io": 2, "break": [2, 4], "depend": 2, "old": 2, "behavior": [2, 3], "need": [2, 4, 6, 9], "hello_asyncio": 2, "passthroughf": [2, 4], "system": [2, 3, 6, 7, 8, 9, 11], "so": [2, 3, 4], "renam": [2, 3, 4, 6], "oper": [2, 4, 6], "longer": [2, 6], "fail": [2, 9], "clarifi": 2, "invalidate_inod": 2, "block": [2, 4], "some": [2, 4, 6, 7], "circumst": 2, "ad": 2, "wa": 2, "readdir": [2, 4, 6], "invalidate_entry_async": 2, "accept": 2, "addit": 2, "ignore_eno": 2, "paramet": 2, "log": [2, 4], "actual": [2, 4], "awar": 2, "entri": [2, 4, 6], "should": [2, 3, 4, 6, 7], "have": [2, 3, 4, 6, 9], "been": [2, 4], "syncf": 2, "fork": 2, "llfuse": 2, "thank": 2, "all": [2, 4, 6, 9], "want": 2, "take": [2, 6], "look": [2, 6], "enoattr": 3, "errorcod": 3, "unfortun": 3, "miss": 3, "errno": [3, 4], "root_inod": [3, 4], "inod": [3, 4, 6], "root": [3, 4], "mount": [3, 4, 6, 7], "point": 3, "rename_exchang": 3, "flag": [3, 4], "must": [3, 6], "atom": 3, "exchang": 3, "two": [3, 4, 6], "path": [3, 4], "both": [3, 4], "exist": [3, 4], "rename_noreplac": 3, "replac": 3, "target": [3, 4, 6], "default_opt": [3, 4], "recommend": [3, 6], "option": [3, 4], "init": [3, 4, 6], "get": [3, 4, 7], "reason": 3, "perform": [3, 4, 6], "other": [3, 4, 5], "combin": 3, "well": 3, "onli": [3, 9], "deviat": 3, "good": [3, 4], "fsname": [3, 4], "foo": [3, 7], "guarante": 3, "never": [3, 4, 6], "alwai": [3, 4], "safe": [3, 6], "default_permiss": [3, 4], "permiss": [3, 4], "check": [3, 9], "without": [3, 4, 7], "umask": [3, 4], "uid": [3, 4], "gid": [3, 4], "would": [3, 4, 6], "effect": 3, "come": 4, "sever": 4, "complet": [4, 7], "ship": 4, "lltest": 4, "usr": 4, "bin": 4, "env": 4, "python3": [4, 9], "utf": 4, "8": [4, 9], "present": 4, "static": 4, "contain": 4, "copyright": 4, "2015": 4, "nikolau": 4, "rath": 4, "org": [4, 9], "gerion": 4, "entrup": 4, "herebi": 4, "grant": 4, "free": 4, "charg": 4, "person": 4, "obtain": 4, "copi": 4, "softwar": [4, 9], "associ": [4, 6], "deal": 4, "restrict": 4, "limit": 4, "right": 4, "modifi": 4, "merg": 4, "publish": 4, "distribut": [4, 9], "sublicens": 4, "sell": 4, "permit": 4, "whom": 4, "furnish": 4, "do": [4, 11], "THE": 4, "AS": 4, "warranti": 4, "OF": 4, "kind": 4, "express": 4, "OR": 4, "impli": 4, "BUT": 4, "NOT": 4, "TO": 4, "merchant": 4, "fit": 4, "FOR": 4, "particular": 4, "purpos": 4, "AND": 4, "noninfring": 4, "IN": 4, "NO": 4, "event": [4, 6], "shall": 4, "author": 4, "holder": 4, "BE": 4, "liabl": 4, "claim": 4, "damag": 4, "liabil": 4, "whether": 4, "contract": 4, "tort": 4, "otherwis": 4, "aris": 4, "connect": 4, "WITH": 4, "sy": 4, "we": 4, "run": [4, 5, 6, 9], "try": 4, "load": 4, "abspath": 4, "join": 4, "dirnam": 4, "argv": 4, "0": [4, 7, 9], "src": 4, "pyx": 4, "insert": 4, "argpars": 4, "argumentpars": 4, "stat": 4, "faulthandl": [4, 6], "importerror": 4, "els": 4, "getlogg": 4, "__name__": 4, "class": [4, 6], "testf": 4, "def": 4, "__init__": 4, "self": [4, 9], "super": 4, "hello_nam": 4, "b": [4, 9], "messag": 4, "hello_inod": 4, "1": [4, 9], "hello_data": 4, "world": 4, "n": 4, "async": 4, "getattr": 4, "ctx": 4, "none": 4, "entryattribut": 4, "st_mode": 4, "s_ifdir": 4, "0o755": 4, "st_size": 4, "elif": 4, "s_ifreg": 4, "0o644": 4, "len": 4, "fuseerror": 4, "stamp": 4, "int": 4, "1438467123": 4, "985654": 4, "1e9": 4, "st_atime_n": 4, "st_ctime_n": 4, "st_mtime_n": 4, "st_gid": 4, "getgid": 4, "st_uid": 4, "getuid": 4, "st_ino": 4, "parent_inod": 4, "name": [4, 6], "await": 4, "opendir": 4, "fh": 4, "start_id": 4, "token": 4, "assert": [4, 7], "one": 4, "readdir_repli": 4, "o_rdwr": 4, "o_wronli": 4, "eacc": 4, "off": 4, "size": 4, "init_log": 4, "debug": [4, 6], "fals": 4, "formatt": 4, "asctim": 4, "": [4, 6], "msec": 4, "03d": 4, "threadnam": 4, "datefmt": 4, "y": 4, "m": [4, 9], "h": 4, "streamhandl": 4, "setformatt": 4, "root_logg": 4, "setlevel": 4, "info": 4, "addhandl": 4, "parse_arg": 4, "pars": 4, "command": [4, 9], "line": 4, "parser": 4, "add_argu": 4, "mountpoint": 4, "str": 4, "help": [4, 9], "where": 4, "store_tru": 4, "output": 4, "fuse_opt": 4, "debug_fus": 4, "close": [4, 6, 7], "unmount": [4, 6], "__main__": 4, "store": 4, "data": [4, 6, 8], "2013": 4, "time": [4, 6], "sqlite3": 4, "collect": 4, "defaultdict": 4, "veri": 4, "simpl": 4, "implement": [4, 6, 7, 11], "terribl": 4, "don": 4, "t": 4, "signific": 4, "amount": 4, "flaw": 4, "keep": [4, 6], "easier": [4, 6], "understand": 4, "atim": 4, "mtime": 4, "ctime": 4, "count": 4, "maintain": 4, "enable_writeback_cach": 4, "true": 4, "db": 4, "text_factori": 4, "row_factori": 4, "row": 4, "cursor": 4, "inode_open_count": 4, "init_t": 4, "initi": 4, "tabl": 4, "execut": 4, "id": 4, "primari": 4, "kei": 4, "null": 4, "mode": 4, "mtime_n": 4, "atime_n": 4, "ctime_n": 4, "blob": 4, "256": 4, "rdev": 4, "content": [4, 6, 7], "rowid": 4, "autoincr": 4, "refer": [4, 6], "uniqu": 4, "now_n": 4, "INTO": 4, "valu": [4, 5, 6], "s_irusr": 4, "s_iwusr": 4, "s_ixusr": 4, "s_irgrp": 4, "s_ixgrp": 4, "s_iroth": 4, "s_ixoth": 4, "get_row": 4, "kw": 4, "next": 4, "stopiter": 4, "nosuchrowerror": 4, "nouniquevalueerror": 4, "inode_p": 4, "select": 4, "entry_timeout": 4, "300": 4, "attr_timeout": 4, "st_nlink": 4, "st_rdev": 4, "st_blksize": 4, "512": 4, "st_block": 4, "readlink": 4, "cursor2": 4, "order": [4, 9], "BY": 4, "s_isdir": 4, "eisdir": 4, "_remov": 4, "rmdir": 4, "enotdir": 4, "enotempti": 4, "delet": 4, "symlink": [4, 6], "s_iflnk": 4, "s_iwgrp": 4, "s_iwoth": 4, "_creat": 4, "inode_p_old": 4, "name_old": 4, "inode_p_new": 4, "name_new": 4, "einval": 4, "entry_old": 4, "entry_new": 4, "exc": 4, "target_exist": 4, "_replac": 4, "link": [4, 6], "new_inode_p": 4, "new_nam": 4, "entry_p": 4, "warn": 4, "attempt": 4, "parent": [4, 6], "attr": [4, 9], "field": 4, "update_s": 4, "memoryview": 4, "update_mod": 4, "update_uid": 4, "update_gid": 4, "update_atim": 4, "update_mtim": 4, "update_ctim": 4, "mknod": [4, 6], "mkdir": [4, 6], "statf": 4, "stat_": 4, "statvfsdata": 4, "f_bsize": 4, "f_frsize": 4, "sum": 4, "f_block": 4, "f_bfree": 4, "max": 4, "1024": 4, "f_bavail": 4, "f_file": 4, "f_ffree": 4, "100": 4, "f_favail": 4, "yeah": 4, "unus": 4, "argument": 4, "pylint": 4, "disabl": 4, "w0613": 4, "access": 4, "could": [4, 6], "ha": 4, "r0201": 4, "inode_par": 4, "w0612": 4, "lastrowid": 4, "offset": 4, "length": 4, "buf": 4, "del": 4, "__str__": 4, "queri": 4, "than": 4, "result": 4, "produc": 4, "discard": 4, "mirror": 4, "specifi": 4, "tree": 4, "caveat": 4, "through": [4, 5], "zero": [4, 6], "alloc": 4, "larg": 4, "becaus": [4, 11], "wai": 4, "fulli": 4, "posix": 4, "compliant": 4, "hardlink": 4, "dure": 4, "twice": 4, "omit": 4, "them": [4, 9], "underli": 4, "confus": 4, "stat_m": 4, "fsencod": 4, "fsdecod": 4, "_inode_path_map": 4, "_lookup_cnt": 4, "lambda": 4, "_fd_inode_map": 4, "dict": 4, "_inode_fd_map": 4, "_fd_open_count": 4, "_inode_to_path": 4, "val": 4, "keyerror": 4, "isinst": 4, "case": [4, 6], "pick": 4, "iter": 4, "_add_path": 4, "With": 4, "map": 4, "multipl": 4, "forget": [4, 6, 7], "inode_list": 4, "nlookup": 4, "continu": 4, "about": [4, 8], "_getattr": 4, "fd": 4, "lstat": 4, "fstat": 4, "listdir": [4, 7], "append": 4, "start": 4, "same": [4, 6], "between": 4, "cannot": 4, "simpli": 4, "skip": 4, "over": 4, "onc": 4, "ino": 4, "sort": 4, "_forget_path": 4, "chown": 4, "follow_symlink": 4, "parent_old": 4, "parent_new": 4, "path_old": 4, "path_new": 4, "f": 4, "possibl": 4, "path_or_fh": 4, "truncat": 4, "chmod": 4, "ftruncat": 4, "fchmod": 4, "fchown": 4, "under": 4, "resolv": 4, "request": [4, 6, 8], "symbol": [4, 6], "s_islnk": 4, "s_imod": 4, "utim": 4, "retriev": 4, "shouldn": 4, "oldstat": 4, "devic": 4, "statvf": 4, "f_namemax": 4, "o_creat": 4, "o_trunc": 4, "lseek": 4, "seek_set": 4, "arg": 4, "enter": [4, 6], "trio_token": 5, "lowlevel": 5, "current_trio_token": 5, "while": 5, "thread": 5, "from_thread": 5, "subclass": 6, "variou": 6, "receiv": 6, "up": 6, "given": 6, "yet": 6, "tutori": 6, "instanc": 6, "To": [6, 9], "again": 6, "done": 6, "charact": 6, "extend": 6, "etc": 6, "byte": 6, "strongli": 6, "applic": 6, "make": 6, "track": 6, "current": 6, "known": 6, "necessari": [6, 9], "whose": 6, "defer": [6, 7], "thu": 6, "until": 6, "process": 6, "achiev": 6, "dynam": 6, "recycl": 6, "everi": 6, "determin": 6, "affect": 6, "descript": 6, "decreas": 6, "layer": 6, "basic": 6, "automat": 6, "advantag": 6, "specif": [6, 10], "acquir": 6, "respect": 6, "place": 6, "concurr": 6, "unless": 6, "writeback": 6, "cach": 6, "serial": 6, "even": 6, "multithread": 6, "chapter": 7, "avoid": 7, "your": 7, "mnt": 7, "follow": [7, 9, 11], "file_on": 7, "w": 7, "fh1": 7, "flush": 7, "fh2": 7, "bar": 7, "dup": 7, "fileno": 7, "seek": 7, "foobar": 7, "re": [7, 11], "probabl": 7, "did": 7, "mistak": 7, "inform": 8, "structur": 8, "util": 8, "common": 8, "gotcha": 8, "changelog": 8, "index": [8, 10], "page": 8, "In": 9, "9": 9, "newer": 9, "librari": [9, 11], "header": 9, "typic": 9, "libfuse3": 9, "devel": 9, "packag": 9, "pkg": 9, "config": 9, "tool": 9, "c": 9, "compil": 9, "unit": 9, "unpack": 9, "http": 9, "build_ext": 9, "inplac": 9, "extens": 9, "pytest": 9, "ask": 9, "wide": 9, "user": 9, "sudo": 9, "local": 9, "unstabl": 9, "effort": 9, "build_cython": 9, "rst": 9, "directli": 10, "jump": 10, "necessarili": 11, "translat": 11, "thei": 11, "potenti": 11}, "objects": {"": [[8, 0, 0, "-", "pyfuse3"]], "pyfuse3": [[3, 1, 1, "", "ENOATTR"], [3, 1, 1, "", "RENAME_EXCHANGE"], [3, 1, 1, "", "RENAME_NOREPLACE"], [3, 1, 1, "", "ROOT_INODE"], [3, 1, 1, "", "default_options"], [5, 1, 1, "", "trio_token"]]}, "objtypes": {"0": "py:module", "1": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "data", "Python data"]}, "titleterms": {"about": 0, "get": [0, 6], "help": 0, "develop": [0, 9], "statu": 0, "contribut": 0, "asyncio": 1, "support": 1, "changelog": 2, "releas": [2, 9], "3": 2, "0": 2, "2023": 2, "08": 2, "06": 2, "2": 2, "05": 2, "09": 2, "2022": 2, "28": 2, "1": 2, "2021": 2, "17": 2, "2020": 2, "12": 2, "30": 2, "10": 2, "31": 2, "2019": 2, "07": 2, "02": 2, "2018": 2, "22": 2, "11": 2, "9": 2, "27": 2, "data": 3, "structur": 3, "exampl": 4, "file": 4, "system": 4, "singl": 4, "read": 4, "onli": 4, "In": 4, "memori": 4, "passthrough": 4, "overlai": 4, "fuse": [5, 6], "api": 5, "function": [5, 11], "gener": 6, "inform": 6, "start": 6, "lookup": 6, "count": 6, "vf": 6, "lock": 6, "common": 7, "gotcha": 7, "remov": 7, "inod": 7, "unlink": 7, "handler": [7, 10], "pyfuse3": 8, "document": 8, "tabl": 8, "content": 8, "indic": 8, "instal": 9, "depend": 9, "stabl": 9, "version": 9, "request": 10, "util": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 57}, "alltitles": {"About": [[0, "about"]], "Getting Help": [[0, "getting-help"]], "Development Status": [[0, "development-status"]], "Contributing": [[0, "contributing"]], "asyncio Support": [[1, "asyncio-support"]], "Changelog": [[2, "changelog"]], "Release 3.3.0 (2023-08-06)": [[2, "release-3-3-0-2023-08-06"]], "Release 3.2.3 (2023-05-09)": [[2, "release-3-2-3-2023-05-09"]], "Release 3.2.2 (2022-09-28)": [[2, "release-3-2-2-2022-09-28"]], "Release 3.2.1 (2021-09-17)": [[2, "release-3-2-1-2021-09-17"]], "Release 3.2.0 (2020-12-30)": [[2, "release-3-2-0-2020-12-30"]], "Release 3.1.1 (2020-10-06)": [[2, "release-3-1-1-2020-10-06"]], "Release 3.1.0 (2020-05-31)": [[2, "release-3-1-0-2020-05-31"]], "Release 3.0.0 (2020-05-08)": [[2, "release-3-0-0-2020-05-08"]], "Release 2.0.0": [[2, "release-2-0-0"]], "Release 1.3.1 (2019-07-17)": [[2, "release-1-3-1-2019-07-17"]], "Release 1.3 (2019-06-02)": [[2, "release-1-3-2019-06-02"]], "Release 1.2 (2018-12-22)": [[2, "release-1-2-2018-12-22"]], "Release 1.1 (2018-11-02)": [[2, "release-1-1-2018-11-02"]], "Release 1.0 (2018-10-08)": [[2, "release-1-0-2018-10-08"]], "Release 0.9 (2018-09-27)": [[2, "release-0-9-2018-09-27"]], "Data Structures": [[3, "data-structures"]], "Example File Systems": [[4, "example-file-systems"]], "Single-file, Read-only File System": [[4, "single-file-read-only-file-system"]], "In-memory File System": [[4, "in-memory-file-system"]], "Passthrough / Overlay File System": [[4, "passthrough-overlay-file-system"]], "FUSE API Functions": [[5, "fuse-api-functions"]], "General Information": [[6, "general-information"]], "Getting started": [[6, "getting-started"]], "Lookup Counts": [[6, "lookup-counts"]], "FUSE and VFS Locking": [[6, "fuse-and-vfs-locking"]], "Common Gotchas": [[7, "common-gotchas"]], "Removing inodes in unlink handler": [[7, "removing-inodes-in-unlink-handler"]], "pyfuse3 Documentation": [[8, "pyfuse3-documentation"]], "Table of Contents": [[8, "module-pyfuse3"]], "Indices and tables": [[8, "indices-and-tables"]], "Installation": [[9, "installation"]], "Dependencies": [[9, "dependencies"]], "Stable releases": [[9, "stable-releases"]], "Development Version": [[9, "development-version"]], "Request Handlers": [[10, "request-handlers"]], "Utility Functions": [[11, "utility-functions"]]}, "indexentries": {"enoattr (in module pyfuse3)": [[3, "pyfuse3.ENOATTR"]], "rename_exchange (in module pyfuse3)": [[3, "pyfuse3.RENAME_EXCHANGE"]], "rename_noreplace (in module pyfuse3)": [[3, "pyfuse3.RENAME_NOREPLACE"]], "root_inode (in module pyfuse3)": [[3, "pyfuse3.ROOT_INODE"]], "default_options (in module pyfuse3)": [[3, "pyfuse3.default_options"]], "trio_token (in module pyfuse3)": [[5, "pyfuse3.trio_token"]], "module": [[8, "module-pyfuse3"]], "pyfuse3": [[8, "module-pyfuse3"]]}})././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344677.0 pyfuse3-3.3.0/doc/html/util.html0000664000175000017500000001332014463757445014421 0ustar00twtw Utility Functions — pyfuse3 3.3.0 documentation

Utility Functions

The following functions do not necessarily translate to calls to the FUSE library. They are provided because they’re potentially useful when implementing file systems in Python.

././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1691344718.547961 pyfuse3-3.3.0/examples/0000775000175000017500000000000014463757517012664 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/examples/hello.py0000775000175000017500000001206714461445163014337 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello.py - Example file system for pyfuse3. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) from argparse import ArgumentParser import stat import logging import errno import pyfuse3 import trio try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) class TestFs(pyfuse3.Operations): def __init__(self): super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE+1 self.hello_data = b"hello world\n" async def getattr(self, inode, ctx=None): entry = pyfuse3.EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = (stat.S_IFDIR | 0o755) entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = (stat.S_IFREG | 0o644) entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup(self, parent_inode, name, ctx=None): if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode) async def opendir(self, inode, ctx): if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) return inode async def readdir(self, fh, start_id, token): assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply( token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode, flags, ctx): if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) return pyfuse3.FileInfo(fh=inode) async def read(self, fh, off, size): assert fh == self.hello_inode return self.hello_data[off:off+size] def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(): '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args() def main(): options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/examples/hello_asyncio.py0000775000175000017500000001301314461445163016054 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello_asyncio.py - Example file system for pyfuse3 using asyncio. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) from argparse import ArgumentParser import asyncio import stat import logging import errno import pyfuse3 import pyfuse3_asyncio try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) pyfuse3_asyncio.enable() class TestFs(pyfuse3.Operations): def __init__(self): super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE+1 self.hello_data = b"hello world\n" async def getattr(self, inode, ctx=None): entry = pyfuse3.EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = (stat.S_IFDIR | 0o755) entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = (stat.S_IFREG | 0o644) entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup(self, parent_inode, name, ctx=None): if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode) async def opendir(self, inode, ctx): if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) return inode async def readdir(self, fh, start_id, token): assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply( token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def setxattr(self, inode, name, value, ctx): if inode != pyfuse3.ROOT_INODE or name != b'command': raise pyfuse3.FUSEError(errno.ENOTSUP) if value == b'terminate': pyfuse3.terminate() else: raise pyfuse3.FUSEError(errno.EINVAL) async def open(self, inode, flags, ctx): if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) return pyfuse3.FileInfo(fh=inode) async def read(self, fh, off, size): assert fh == self.hello_inode return self.hello_data[off:off+size] def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(): '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args() def main(): options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello_asyncio') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) loop = asyncio.get_event_loop() try: loop.run_until_complete(pyfuse3.main()) except: pyfuse3.close(unmount=False) raise finally: loop.close() pyfuse3.close() if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/examples/passthroughfs.py0000775000175000017500000004151214461445163016131 0ustar00twtw#!/usr/bin/env python3 ''' passthroughfs.py - Example file system for pyfuse3 This file system mirrors the contents of a specified directory tree. Caveats: * Inode generation numbers are not passed through but set to zero. * Block size (st_blksize) and number of allocated blocks (st_blocks) are not passed through. * Performance for large directories is not good, because the directory is always read completely. * There may be a way to break-out of the directory tree. * The readdir implementation is not fully POSIX compliant. If a directory contains hardlinks and is modified during a readdir call, readdir() may return some of the hardlinked files twice or omit them completely. * If you delete or rename files in the underlying file system, the passthrough file system will get confused. Copyright © Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) import pyfuse3 from argparse import ArgumentParser import errno import logging import stat as stat_m from pyfuse3 import FUSEError from os import fsencode, fsdecode from collections import defaultdict import trio import faulthandler faulthandler.enable() log = logging.getLogger(__name__) class Operations(pyfuse3.Operations): enable_writeback_cache = True def __init__(self, source): super().__init__() self._inode_path_map = { pyfuse3.ROOT_INODE: source } self._lookup_cnt = defaultdict(lambda : 0) self._fd_inode_map = dict() self._inode_fd_map = dict() self._fd_open_count = dict() def _inode_to_path(self, inode): try: val = self._inode_path_map[inode] except KeyError: raise FUSEError(errno.ENOENT) if isinstance(val, set): # In case of hardlinks, pick any path val = next(iter(val)) return val def _add_path(self, inode, path): log.debug('_add_path for %d, %s', inode, path) self._lookup_cnt[inode] += 1 # With hardlinks, one inode may map to multiple paths. if inode not in self._inode_path_map: self._inode_path_map[inode] = path return val = self._inode_path_map[inode] if isinstance(val, set): val.add(path) elif val != path: self._inode_path_map[inode] = { path, val } async def forget(self, inode_list): for (inode, nlookup) in inode_list: if self._lookup_cnt[inode] > nlookup: self._lookup_cnt[inode] -= nlookup continue log.debug('forgetting about inode %d', inode) assert inode not in self._inode_fd_map del self._lookup_cnt[inode] try: del self._inode_path_map[inode] except KeyError: # may have been deleted pass async def lookup(self, inode_p, name, ctx=None): name = fsdecode(name) log.debug('lookup for %s in %d', name, inode_p) path = os.path.join(self._inode_to_path(inode_p), name) attr = self._getattr(path=path) if name != '.' and name != '..': self._add_path(attr.st_ino, path) return attr async def getattr(self, inode, ctx=None): if inode in self._inode_fd_map: return self._getattr(fd=self._inode_fd_map[inode]) else: return self._getattr(path=self._inode_to_path(inode)) def _getattr(self, path=None, fd=None): assert fd is None or path is None assert not(fd is None and path is None) try: if fd is None: stat = os.lstat(path) else: stat = os.fstat(fd) except OSError as exc: raise FUSEError(exc.errno) entry = pyfuse3.EntryAttributes() for attr in ('st_ino', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns'): setattr(entry, attr, getattr(stat, attr)) entry.generation = 0 entry.entry_timeout = 0 entry.attr_timeout = 0 entry.st_blksize = 512 entry.st_blocks = ((entry.st_size+entry.st_blksize-1) // entry.st_blksize) return entry async def readlink(self, inode, ctx): path = self._inode_to_path(inode) try: target = os.readlink(path) except OSError as exc: raise FUSEError(exc.errno) return fsencode(target) async def opendir(self, inode, ctx): return inode async def readdir(self, inode, off, token): path = self._inode_to_path(inode) log.debug('reading %s', path) entries = [] for name in os.listdir(path): if name == '.' or name == '..': continue attr = self._getattr(path=os.path.join(path, name)) entries.append((attr.st_ino, name, attr)) log.debug('read %d entries, starting at %d', len(entries), off) # This is not fully posix compatible. If there are hardlinks # (two names with the same inode), we don't have a unique # offset to start in between them. Note that we cannot simply # count entries, because then we would skip over entries # (or return them more than once) if the number of directory # entries changes between two calls to readdir(). for (ino, name, attr) in sorted(entries): if ino <= off: continue if not pyfuse3.readdir_reply( token, fsencode(name), attr, ino): break self._add_path(attr.st_ino, os.path.join(path, name)) async def unlink(self, inode_p, name, ctx): name = fsdecode(name) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: inode = os.lstat(path).st_ino os.unlink(path) except OSError as exc: raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(inode, path) async def rmdir(self, inode_p, name, ctx): name = fsdecode(name) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: inode = os.lstat(path).st_ino os.rmdir(path) except OSError as exc: raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(inode, path) def _forget_path(self, inode, path): log.debug('forget %s for %d', path, inode) val = self._inode_path_map[inode] if isinstance(val, set): val.remove(path) if len(val) == 1: self._inode_path_map[inode] = next(iter(val)) else: del self._inode_path_map[inode] async def symlink(self, inode_p, name, target, ctx): name = fsdecode(name) target = fsdecode(target) parent = self._inode_to_path(inode_p) path = os.path.join(parent, name) try: os.symlink(target, path) os.chown(path, ctx.uid, ctx.gid, follow_symlinks=False) except OSError as exc: raise FUSEError(exc.errno) stat = os.lstat(path) self._add_path(stat.st_ino, path) return await self.getattr(stat.st_ino) async def rename(self, inode_p_old, name_old, inode_p_new, name_new, flags, ctx): if flags != 0: raise FUSEError(errno.EINVAL) name_old = fsdecode(name_old) name_new = fsdecode(name_new) parent_old = self._inode_to_path(inode_p_old) parent_new = self._inode_to_path(inode_p_new) path_old = os.path.join(parent_old, name_old) path_new = os.path.join(parent_new, name_new) try: os.rename(path_old, path_new) inode = os.lstat(path_new).st_ino except OSError as exc: raise FUSEError(exc.errno) if inode not in self._lookup_cnt: return val = self._inode_path_map[inode] if isinstance(val, set): assert len(val) > 1 val.add(path_new) val.remove(path_old) else: assert val == path_old self._inode_path_map[inode] = path_new async def link(self, inode, new_inode_p, new_name, ctx): new_name = fsdecode(new_name) parent = self._inode_to_path(new_inode_p) path = os.path.join(parent, new_name) try: os.link(self._inode_to_path(inode), path, follow_symlinks=False) except OSError as exc: raise FUSEError(exc.errno) self._add_path(inode, path) return await self.getattr(inode) async def setattr(self, inode, attr, fields, fh, ctx): # We use the f* functions if possible so that we can handle # a setattr() call for an inode without associated directory # handle. if fh is None: path_or_fh = self._inode_to_path(inode) truncate = os.truncate chmod = os.chmod chown = os.chown stat = os.lstat else: path_or_fh = fh truncate = os.ftruncate chmod = os.fchmod chown = os.fchown stat = os.fstat try: if fields.update_size: truncate(path_or_fh, attr.st_size) if fields.update_mode: # Under Linux, chmod always resolves symlinks so we should # actually never get a setattr() request for a symbolic # link. assert not stat_m.S_ISLNK(attr.st_mode) chmod(path_or_fh, stat_m.S_IMODE(attr.st_mode)) if fields.update_uid: chown(path_or_fh, attr.st_uid, -1, follow_symlinks=False) if fields.update_gid: chown(path_or_fh, -1, attr.st_gid, follow_symlinks=False) if fields.update_atime and fields.update_mtime: if fh is None: os.utime(path_or_fh, None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns)) else: os.utime(path_or_fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) elif fields.update_atime or fields.update_mtime: # We can only set both values, so we first need to retrieve the # one that we shouldn't be changing. oldstat = stat(path_or_fh) if not fields.update_atime: attr.st_atime_ns = oldstat.st_atime_ns else: attr.st_mtime_ns = oldstat.st_mtime_ns if fh is None: os.utime(path_or_fh, None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns)) else: os.utime(path_or_fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) except OSError as exc: raise FUSEError(exc.errno) return await self.getattr(inode) async def mknod(self, inode_p, name, mode, rdev, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: os.mknod(path, mode=(mode & ~ctx.umask), device=rdev) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def mkdir(self, inode_p, name, mode, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: os.mkdir(path, mode=(mode & ~ctx.umask)) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def statfs(self, ctx): root = self._inode_path_map[pyfuse3.ROOT_INODE] stat_ = pyfuse3.StatvfsData() try: statfs = os.statvfs(root) except OSError as exc: raise FUSEError(exc.errno) for attr in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail'): setattr(stat_, attr, getattr(statfs, attr)) stat_.f_namemax = statfs.f_namemax - (len(root)+1) return stat_ async def open(self, inode, flags, ctx): if inode in self._inode_fd_map: fd = self._inode_fd_map[inode] self._fd_open_count[fd] += 1 return pyfuse3.FileInfo(fh=fd) assert flags & os.O_CREAT == 0 try: fd = os.open(self._inode_to_path(inode), flags) except OSError as exc: raise FUSEError(exc.errno) self._inode_fd_map[inode] = fd self._fd_inode_map[fd] = inode self._fd_open_count[fd] = 1 return pyfuse3.FileInfo(fh=fd) async def create(self, inode_p, name, mode, flags, ctx): path = os.path.join(self._inode_to_path(inode_p), fsdecode(name)) try: fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC) except OSError as exc: raise FUSEError(exc.errno) attr = self._getattr(fd=fd) self._add_path(attr.st_ino, path) self._inode_fd_map[attr.st_ino] = fd self._fd_inode_map[fd] = attr.st_ino self._fd_open_count[fd] = 1 return (pyfuse3.FileInfo(fh=fd), attr) async def read(self, fd, offset, length): os.lseek(fd, offset, os.SEEK_SET) return os.read(fd, length) async def write(self, fd, offset, buf): os.lseek(fd, offset, os.SEEK_SET) return os.write(fd, buf) async def release(self, fd): if self._fd_open_count[fd] > 1: self._fd_open_count[fd] -= 1 return del self._fd_open_count[fd] inode = self._fd_inode_map[fd] del self._inode_fd_map[inode] del self._fd_inode_map[fd] try: os.close(fd) except OSError as exc: raise FUSEError(exc.errno) def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(args): '''Parse command line''' parser = ArgumentParser() parser.add_argument('source', type=str, help='Directory tree to mirror') parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args(args) def main(): options = parse_args(sys.argv[1:]) init_logging(options.debug) operations = Operations(options.source) log.debug('Mounting...') fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=passthroughfs') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: log.debug('Entering main loop..') trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise log.debug('Unmounting..') pyfuse3.close() if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/examples/tmpfs.py0000775000175000017500000004050314461445163014361 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' tmpfs.py - Example file system for pyfuse3. This file system stores all data in memory. Copyright © 2013 Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import os import sys # If we are running from the pyfuse3 source directory, try # to load the module from there first. basedir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, os.path.join(basedir, 'src')) import pyfuse3 import errno import stat from time import time import sqlite3 import logging from collections import defaultdict from pyfuse3 import FUSEError from argparse import ArgumentParser import trio try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger() class Operations(pyfuse3.Operations): '''An example filesystem that stores all data in memory This is a very simple implementation with terrible performance. Don't try to store significant amounts of data. Also, there are some other flaws that have not been fixed to keep the code easier to understand: * atime, mtime and ctime are not updated * generation numbers are not supported * lookup counts are not maintained ''' enable_writeback_cache = True def __init__(self): super(Operations, self).__init__() self.db = sqlite3.connect(':memory:') self.db.text_factory = str self.db.row_factory = sqlite3.Row self.cursor = self.db.cursor() self.inode_open_count = defaultdict(int) self.init_tables() def init_tables(self): '''Initialize file system tables''' self.cursor.execute(""" CREATE TABLE inodes ( id INTEGER PRIMARY KEY, uid INT NOT NULL, gid INT NOT NULL, mode INT NOT NULL, mtime_ns INT NOT NULL, atime_ns INT NOT NULL, ctime_ns INT NOT NULL, target BLOB(256) , size INT NOT NULL DEFAULT 0, rdev INT NOT NULL DEFAULT 0, data BLOB ) """) self.cursor.execute(""" CREATE TABLE contents ( rowid INTEGER PRIMARY KEY AUTOINCREMENT, name BLOB(256) NOT NULL, inode INT NOT NULL REFERENCES inodes(id), parent_inode INT NOT NULL REFERENCES inodes(id), UNIQUE (name, parent_inode) )""") # Insert root directory now_ns = int(time() * 1e9) self.cursor.execute("INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) " "VALUES (?,?,?,?,?,?,?)", (pyfuse3.ROOT_INODE, stat.S_IFDIR | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, os.getuid(), os.getgid(), now_ns, now_ns, now_ns)) self.cursor.execute("INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)", (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE)) def get_row(self, *a, **kw): self.cursor.execute(*a, **kw) try: row = next(self.cursor) except StopIteration: raise NoSuchRowError() try: next(self.cursor) except StopIteration: pass else: raise NoUniqueValueError() return row async def lookup(self, inode_p, name, ctx=None): if name == '.': inode = inode_p elif name == '..': inode = self.get_row("SELECT * FROM contents WHERE inode=?", (inode_p,))['parent_inode'] else: try: inode = self.get_row("SELECT * FROM contents WHERE name=? AND parent_inode=?", (name, inode_p))['inode'] except NoSuchRowError: raise(pyfuse3.FUSEError(errno.ENOENT)) return await self.getattr(inode, ctx) async def getattr(self, inode, ctx=None): try: row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,)) except NoSuchRowError: raise(pyfuse3.FUSEError(errno.ENOENT)) entry = pyfuse3.EntryAttributes() entry.st_ino = inode entry.generation = 0 entry.entry_timeout = 300 entry.attr_timeout = 300 entry.st_mode = row['mode'] entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?", (inode,))[0] entry.st_uid = row['uid'] entry.st_gid = row['gid'] entry.st_rdev = row['rdev'] entry.st_size = row['size'] entry.st_blksize = 512 entry.st_blocks = 1 entry.st_atime_ns = row['atime_ns'] entry.st_mtime_ns = row['mtime_ns'] entry.st_ctime_ns = row['ctime_ns'] return entry async def readlink(self, inode, ctx): return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target'] async def opendir(self, inode, ctx): return inode async def readdir(self, inode, off, token): if off == 0: off = -1 cursor2 = self.db.cursor() cursor2.execute("SELECT * FROM contents WHERE parent_inode=? " 'AND rowid > ? ORDER BY rowid', (inode, off)) for row in cursor2: pyfuse3.readdir_reply( token, row['name'], await self.getattr(row['inode']), row['rowid']) async def unlink(self, inode_p, name,ctx): entry = await self.lookup(inode_p, name) if stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.EISDIR) self._remove(inode_p, name, entry) async def rmdir(self, inode_p, name, ctx): entry = await self.lookup(inode_p, name) if not stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.ENOTDIR) self._remove(inode_p, name, entry) def _remove(self, inode_p, name, entry): if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry.st_ino,))[0] > 0: raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute("DELETE FROM contents WHERE name=? AND parent_inode=?", (name, inode_p)) if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,)) async def symlink(self, inode_p, name, target, ctx): mode = (stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH) return await self._create(inode_p, name, mode, ctx, target=target) async def rename(self, inode_p_old, name_old, inode_p_new, name_new, flags, ctx): if flags != 0: raise FUSEError(errno.EINVAL) entry_old = await self.lookup(inode_p_old, name_old) try: entry_new = await self.lookup(inode_p_new, name_new) except pyfuse3.FUSEError as exc: if exc.errno != errno.ENOENT: raise target_exists = False else: target_exists = True if target_exists: self._replace(inode_p_old, name_old, inode_p_new, name_new, entry_old, entry_new) else: self.cursor.execute("UPDATE contents SET name=?, parent_inode=? WHERE name=? " "AND parent_inode=?", (name_new, inode_p_new, name_old, inode_p_old)) def _replace(self, inode_p_old, name_old, inode_p_new, name_new, entry_old, entry_new): if self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry_new.st_ino,))[0] > 0: raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute("UPDATE contents SET inode=? WHERE name=? AND parent_inode=?", (entry_old.st_ino, name_new, inode_p_new)) self.db.execute('DELETE FROM contents WHERE name=? AND parent_inode=?', (name_old, inode_p_old)) if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,)) async def link(self, inode, new_inode_p, new_name, ctx): entry_p = await self.getattr(new_inode_p) if entry_p.st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', new_name, new_inode_p) raise FUSEError(errno.EINVAL) self.cursor.execute("INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)", (new_name, inode, new_inode_p)) return await self.getattr(inode) async def setattr(self, inode, attr, fields, fh, ctx): if fields.update_size: data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0] if data is None: data = b'' if len(data) < attr.st_size: data = data + b'\0' * (attr.st_size - len(data)) else: data = data[:attr.st_size] self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), attr.st_size, inode)) if fields.update_mode: self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?', (attr.st_mode, inode)) if fields.update_uid: self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?', (attr.st_uid, inode)) if fields.update_gid: self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?', (attr.st_gid, inode)) if fields.update_atime: self.cursor.execute('UPDATE inodes SET atime_ns=? WHERE id=?', (attr.st_atime_ns, inode)) if fields.update_mtime: self.cursor.execute('UPDATE inodes SET mtime_ns=? WHERE id=?', (attr.st_mtime_ns, inode)) if fields.update_ctime: self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?', (attr.st_ctime_ns, inode)) else: self.cursor.execute('UPDATE inodes SET ctime_ns=? WHERE id=?', (int(time()*1e9), inode)) return await self.getattr(inode) async def mknod(self, inode_p, name, mode, rdev, ctx): return await self._create(inode_p, name, mode, ctx, rdev=rdev) async def mkdir(self, inode_p, name, mode, ctx): return await self._create(inode_p, name, mode, ctx) async def statfs(self, ctx): stat_ = pyfuse3.StatvfsData() stat_.f_bsize = 512 stat_.f_frsize = 512 size = self.get_row('SELECT SUM(size) FROM inodes')[0] stat_.f_blocks = size // stat_.f_frsize stat_.f_bfree = max(size // stat_.f_frsize, 1024) stat_.f_bavail = stat_.f_bfree inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0] stat_.f_files = inodes stat_.f_ffree = max(inodes , 100) stat_.f_favail = stat_.f_ffree return stat_ async def open(self, inode, flags, ctx): # Yeah, unused arguments #pylint: disable=W0613 self.inode_open_count[inode] += 1 # Use inodes as a file handles return pyfuse3.FileInfo(fh=inode) async def access(self, inode, mode, ctx): # Yeah, could be a function and has unused arguments #pylint: disable=R0201,W0613 return True async def create(self, inode_parent, name, mode, flags, ctx): #pylint: disable=W0612 entry = await self._create(inode_parent, name, mode, ctx) self.inode_open_count[entry.st_ino] += 1 return (pyfuse3.FileInfo(fh=entry.st_ino), entry) async def _create(self, inode_p, name, mode, ctx, rdev=0, target=None): if (await self.getattr(inode_p)).st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', name, inode_p) raise FUSEError(errno.EINVAL) now_ns = int(time() * 1e9) self.cursor.execute('INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, ' 'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)', (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev)) inode = self.cursor.lastrowid self.db.execute("INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)", (name, inode, inode_p)) return await self.getattr(inode) async def read(self, fh, offset, length): data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' return data[offset:offset+length] async def write(self, fh, offset, buf): data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' data = data[:offset] + buf + data[offset+len(buf):] self.cursor.execute('UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), len(data), fh)) return len(buf) async def release(self, fh): self.inode_open_count[fh] -= 1 if self.inode_open_count[fh] == 0: del self.inode_open_count[fh] if (await self.getattr(fh)).st_nlink == 0: self.cursor.execute("DELETE FROM inodes WHERE id=?", (fh,)) class NoUniqueValueError(Exception): def __str__(self): return 'Query generated more than 1 result row' class NoSuchRowError(Exception): def __str__(self): return 'Query produced 0 result rows' def init_logging(debug=False): formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(threadName)s: ' '[%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S") handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(): '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output') parser.add_argument('--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output') return parser.parse_args() if __name__ == '__main__': options = parse_args() init_logging(options.debug) operations = Operations() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=tmpfs') fuse_options.discard('default_permissions') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/pyproject.toml0000664000175000017500000000012114461445163013741 0ustar00twtw[build-system] requires = ["setuptools"] build-backend = "setuptools.build_meta" ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1691344718.551961 pyfuse3-3.3.0/rst/0000775000175000017500000000000014463757517011656 5ustar00twtw././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1691344718.551961 pyfuse3-3.3.0/rst/_static/0000775000175000017500000000000014463757517013304 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/_static/.placeholder0000664000175000017500000000000014461445163015542 0ustar00twtw././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1691344718.551961 pyfuse3-3.3.0/rst/_templates/0000775000175000017500000000000014463757517014013 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/_templates/localtoc.html0000664000175000017500000000013514461445163016465 0ustar00twtw

{{ _('Table Of Contents') }}

{{ toctree() }} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/about.rst0000664000175000017500000000012014461445163013500 0ustar00twtw======= About ======= .. include:: ../README.rst :start-after: start-intro ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/asyncio.rst0000664000175000017500000000074514461445163014050 0ustar00twtw.. _asyncio: ================= asyncio Support ================= By default, pyfuse3 uses asynchronous I/O using Trio_ (and most of the documentation assumes that you are using Trio). If you'd rather use asyncio, import the *pyfuse3_asyncio* module and call its *enable()* function before using *pyfuse3*. For example:: import pyfuse3 import pyfuse3_asyncio pyfuse3_asyncio.enable() # Use pyfuse3 as usual from here on. .. _Trio: https://github.com/python-trio/trio ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/changes.rst0000664000175000017500000000003414461445163014002 0ustar00twtw.. include:: ../Changes.rst ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344073.0 pyfuse3-3.3.0/rst/conf.py0000664000175000017500000001564214463756311013154 0ustar00twtw# -*- coding: utf-8 -*- # # pyfuse3 documentation build configuration file, created by # sphinx-quickstart on Sat Oct 16 14:14:40 2010. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. import os, sys basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) # we need util/ so the sphinx_cython extension is found: sys.path.insert(0, os.path.join(basedir, 'util')) # we need src/ also, it is needed so llfuse can be imported to generate api docs: sys.path.insert(0, os.path.join(basedir, 'src')) #pylint: disable-all #@PydevCodeAnalysisIgnore # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx_cython', 'sphinxcontrib.asyncio' ] # Link to Python standard library intersphinx_mapping = {'python': ('https://docs.python.org/3/', None), 'trio': ('https://trio.readthedocs.io/en/stable/', None),} # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' autodoc_docstring_signature = True # The encoding of source files. source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # Warn about unresolved references nitpicky = True # General information about the project. project = u'pyfuse3' copyright = u'2010-2023, Nikolaus Rath' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '3.3.0' # The full version, including alpha/beta/rc tags. release = version + '' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. default_role = 'py:obj' primary_domain = 'py' # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' #pygments_style = 'colorful' highlight_language = 'python' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. html_use_modindex = False # If false, no index is generated. html_use_index = True # If true, the index is split into individual pages for each letter. html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'pyfuse3doc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'pyfuse3.tex', u'pyfuse3 Documentation', u'Nikolaus Rath', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/data.rst0000664000175000017500000000756114461445163013317 0ustar00twtw================= Data Structures ================= .. currentmodule:: pyfuse3 .. py:data:: ENOATTR This errorcode is unfortunately missing in the `errno` module, so it is provided by pyfuse3 instead. .. py:data:: ROOT_INODE The inode of the root directory, i.e. the mount point of the file system. .. py:data:: RENAME_EXCHANGE A flag that may be passed to the `~Operations.rename` handler. When passed, the handler must atomically exchange the two paths (which must both exist). .. py:data:: RENAME_NOREPLACE A flag that may be passed to the `~Operations.rename` handler. When passed, the handler must not replace an existing target. .. py:data:: default_options This is a recommended set of options that should be passed to `pyfuse3.init` to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason. (The :samp:`fsname=` option is guaranteed never to be included in the default options, so you can always safely add it to the set). The default options are: * ``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect. .. autoexception:: FUSEError .. autoclass:: RequestContext .. attribute:: pid .. attribute:: uid .. attribute:: gid .. attribute:: umask .. autoclass:: StatvfsData .. attribute:: f_bsize .. attribute:: f_frsize .. attribute:: f_blocks .. attribute:: f_bfree .. attribute:: f_bavail .. attribute:: f_files .. attribute:: f_ffree .. attribute:: f_favail .. attribute:: f_namemax .. autoclass:: EntryAttributes .. autoattribute:: st_ino .. autoattribute:: generation .. autoattribute:: entry_timeout .. autoattribute:: attr_timeout .. autoattribute:: st_mode .. autoattribute:: st_nlink .. autoattribute:: st_uid .. autoattribute:: st_gid .. autoattribute:: st_rdev .. autoattribute:: st_size .. autoattribute:: st_blksize .. autoattribute:: st_blocks .. autoattribute:: st_atime_ns .. autoattribute:: st_ctime_ns .. autoattribute:: st_mtime_ns .. autoclass:: FileInfo .. autoattribute:: fh This attribute must be set to the file handle to be returned from `Operations.open`. .. autoattribute:: direct_io If true, signals to the kernel that this file should not be cached or buffered. .. autoattribute:: keep_cache If true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated. .. autoattribute:: nonseekable If true, indicates that the file does not support seeking. .. autoclass:: SetattrFields .. attribute:: update_atime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_atime_ns` field contains an updated value. .. attribute:: update_mtime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mtime_ns` field contains an updated value. .. attribute:: update_mode If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mode` field contains an updated value. .. attribute:: update_uid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_uid` field contains an updated value. .. attribute:: update_gid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_gid` field contains an updated value. .. attribute:: update_size If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_size` field contains an updated value. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/example.rst0000664000175000017500000000145114461445163014031 0ustar00twtw.. _example file system: ====================== Example File Systems ====================== pyfuse3 comes with several example file systems in the :file:`examples` directory of the release tarball. For completeness, these examples are also included here. Single-file, Read-only File System ================================== (shipped as :file:`examples/lltest.py`) .. literalinclude:: ../examples/hello.py :linenos: :language: python In-memory File System ===================== (shipped as :file:`examples/tmpfs.py`) .. literalinclude:: ../examples/tmpfs.py :linenos: :language: python Passthrough / Overlay File System ================================= (shipped as :file:`examples/passthroughfs.py`) .. literalinclude:: ../examples/passthroughfs.py :linenos: :language: python ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/fuse_api.rst0000664000175000017500000000110714461445163014167 0ustar00twtw==================== FUSE API Functions ==================== .. currentmodule:: pyfuse3 .. autofunction:: init .. autocofunction:: main .. autofunction:: terminate .. autofunction:: close .. autofunction:: invalidate_inode .. autofunction:: invalidate_entry .. autofunction:: invalidate_entry_async .. autofunction:: notify_store .. autofunction:: readdir_reply .. py:data:: trio_token Set to the value returned by `trio.lowlevel.current_trio_token()` while `main()` is running. Can be used by other threads to run code in the main loop through `trio.from_thread.run`. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/general.rst0000664000175000017500000000717614461445163014025 0ustar00twtw===================== General Information ===================== .. currentmodule:: pyfuse3 .. _getting_started: Getting started =============== A file system is implemented by subclassing the `pyfuse3.Operations` class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode. By default, pyfuse3 uses asynchronous I/O using Trio_, and most of the documentation assumes that you are using Trio. If you'd rather use asyncio, take a look at :ref:`asyncio Support `. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the `Trio tutorial`_ first. An instance of the operations class is passed to `pyfuse3.init` to mount the file system. To enter the request handling loop, run `pyfuse3.main` in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling `pyfuse3.close`. All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as `bytes` and must be returned as `bytes`. For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler_ module. .. _faulthandler: http://docs.python.org/3/library/faulthandler.html .. _Trio tutorial: https://trio.readthedocs.io/en/latest/tutorial.html .. _Trio: https://github.com/python-trio/trio Lookup Counts ============= Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the *unlink* system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process. FUSE file systems achieve this by using "lookup counts". A lookup count is a number that's associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled. The lookup count of an inode is increased by every operation that could make the inode "known" to the kernel. This includes e.g. `~Operations.lookup`, `~Operations.create` and `~Operations.readdir` (to determine if a given request handler affects the lookup count, please refer to its description in the `Operations` class). The lookup count is decreased by calls to the `~Operations.forget` handler. FUSE and VFS Locking ==================== FUSE and the kernel's VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically: * Calls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename). * Calls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation). * Unless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled). ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/gotchas.rst0000664000175000017500000000154514461445163014032 0ustar00twtw================ Common Gotchas ================ .. currentmodule:: pyfuse3 This chapter lists some common gotchas that should be avoided. Removing inodes in unlink handler ================================= If your file system is mounted at :file:`mnt`, the following code should complete without errors:: with open('mnt/file_one', 'w+') as fh1: fh1.write('foo') fh1.flush() with open('mnt/file_one', 'a') as fh2: os.unlink('mnt/file_one') assert 'file_one' not in os.listdir('mnt') fh2.write('bar') os.close(os.dup(fh1.fileno())) fh1.seek(0) assert fh1.read() == 'foobar' If you're getting an error, then you probably did a mistake when implementing the `~Operations.unlink` handler and are removing the file contents when you should be deferring removal to the `~Operations.forget` handler. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/index.rst0000664000175000017500000000062714461445163013511 0ustar00twtw============================= pyfuse3 Documentation ============================= Table of Contents ----------------- .. module:: pyfuse3 .. toctree:: :maxdepth: 1 about.rst install.rst general.rst asyncio.rst fuse_api.rst data.rst operations.rst util.rst gotchas.rst example.rst changes.rst Indices and tables ------------------ * :ref:`genindex` * :ref:`search` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/install.rst0000664000175000017500000000425414461445163014050 0ustar00twtw============== Installation ============== .. highlight:: sh Dependencies ============ In order to build and run pyfuse3 you need the following software: * Linux kernel 3.9 or newer. * Version 3.3.0 or newer of the libfuse_ library, including development headers (typically distributions provide them in a *libfuse3-devel* or *libfuse3-dev* package). * Python_ 3.8 or newer installed with development headers * The Trio_ Python module, version 0.7 or newer. * The `setuptools`_ Python module, version 1.0 or newer. * the `pkg-config`_ tool * the `attr`_ library * A C compiler (only for building) To run the unit tests, you will need * The `py.test`_ Python module, version 3.3.0 or newer Stable releases =============== To install a stable pyfuse3 release: 1. Download and unpack the release tarball from https://pypi.python.org/pypi/pyfuse3/ 2. Run ``python3 setup.py build_ext --inplace`` to build the C extension 3. Run ``python3 -m pytest test/`` to run a self-test. If this fails, ask for help on the `FUSE mailing list`_ or report a bug in the `issue tracker `_. 4. To install system-wide for all users, run ``sudo python setup.py install``. To install into :file:`~/.local`, run ``python3 setup.py install --user``. Development Version =================== If you have checked out the unstable development version, a bit more effort is required. You need to also have Cython_ (0.29 or newer) and Sphinx_ (<6.0) installed, and the necessary commands are:: python3 setup.py build_cython python3 setup.py build_ext --inplace python3 -m pytest test/ sphinx-build -b html rst doc/html python3 setup.py install .. _Cython: http://www.cython.org/ .. _Sphinx: http://sphinx.pocoo.org/ .. _Python: http://www.python.org/ .. _Trio: https://github.com/python-trio/trio .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _`py.test`: https://pypi.python.org/pypi/pytest/ .. _libfuse: http://github.com/libfuse/libfuse .. _attr: http://savannah.nongnu.org/projects/attr/ .. _`pkg-config`: http://www.freedesktop.org/wiki/Software/pkg-config .. _setuptools: https://pypi.python.org/pypi/setuptools ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/operations.rst0000664000175000017500000000235114461445163014561 0ustar00twtw================== Request Handlers ================== (You can use the :ref:`genindex` to directly jump to a specific handler). .. currentmodule:: pyfuse3 .. autoclass:: Operations :members: .. attribute:: supports_dot_lookup = True If set, indicates that the filesystem supports lookup of the ``.`` and ``..`` entries. This is required if the file system will be shared over NFS. .. attribute:: enable_writeback_cache = True Enables write-caching in the kernel if available. This means that individual write request may be buffered and merged in the kernel before they are send to the filesystem. .. attribute:: enable_acl = False Enable ACL support. When enabled, the kernel will cache and have responsibility for enforcing ACLs. ACL will be stored as xattrs and passed to userspace, which is responsible for updating the ACLs in the filesystem, keeping the file mode in sync with the ACL, and ensuring inheritance of default ACLs when new filesystem nodes are created. Note that this requires that the file system is able to parse and interpret the xattr representation of ACLs. Enabling this feature implicitly turns on the ``default_permissions`` option. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/rst/util.rst0000664000175000017500000000062714461445163013357 0ustar00twtw==================== Utility Functions ==================== The following functions do not necessarily translate to calls to the FUSE library. They are provided because they're potentially useful when implementing file systems in Python. .. currentmodule:: pyfuse3 .. autofunction:: setxattr .. autofunction:: getxattr .. autofunction:: listdir .. autofunction:: get_sup_groups .. autofunction:: syncfs ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5559611 pyfuse3-3.3.0/setup.cfg0000664000175000017500000000013614463757517012667 0ustar00twtw[sdist] formats = gztar [flake8] max-line-length = 80 [egg_info] tag_build = tag_date = 0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344073.0 pyfuse3-3.3.0/setup.py0000775000175000017500000001746214463756311012564 0ustar00twtw#!/usr/bin/env python3 #-*- coding: us-ascii -*- ''' setup.py Installation script for pyfuse3. Copyright (c) 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import sys import os import subprocess import warnings import re # Disable Cython support in setuptools. It fails under some conditions # (http://trac.cython.org/ticket/859), and we have our own build_cython command # anyway. try: import Cython.Distutils.build_ext except ImportError: pass else: # We can't delete Cython.Distutils.build_ext directly, # because the build_ext class (that is imported from # the build_ext module in __init__.py) shadows the # build_ext module. module = sys.modules['Cython.Distutils.build_ext'] del module.build_ext import setuptools from setuptools import Extension basedir = os.path.abspath(os.path.dirname(__file__)) sys.path.insert(0, os.path.join(basedir, 'util')) # When running from Git repo, enable all warnings DEVELOPER_MODE = os.path.exists(os.path.join(basedir, 'MANIFEST.in')) if DEVELOPER_MODE: print('found MANIFEST.in, running in developer mode') warnings.resetwarnings() warnings.simplefilter('default') PYFUSE3_VERSION = '3.3.0' def main(): with open(os.path.join(basedir, 'README.rst'), 'r') as fh: long_desc = fh.read() compile_args = pkg_config('fuse3', cflags=True, ldflags=False, min_ver='3.2.0') compile_args += ['-DFUSE_USE_VERSION=32', '-Wall', '-Wextra', '-Wconversion', '-Wsign-compare', '-DPYFUSE3_VERSION="%s"' % PYFUSE3_VERSION] # We may have unused functions if we compile for older FUSE versions compile_args.append('-Wno-unused-function') # Nothing wrong with that if you know what you are doing # (which Cython does) compile_args.append('-Wno-implicit-fallthrough') # Due to platform specific conditions, these are unavoidable compile_args.append('-Wno-unused-function') compile_args.append('-Wno-unused-parameter') # Enable all fatal warnings only in developer mode. # (otherwise we break forward compatibility because compilation with newer # compiler may fail if additional warnings are added) if DEVELOPER_MODE: compile_args.append('-Werror') compile_args.append('-Wfatal-errors') # Unreachable code is expected because we need to support multiple # platforms and architectures. compile_args.append('-Wno-error=unreachable-code') # Value-changing conversions should always be explicit. compile_args.append('-Werror=conversion') # Note that (i > -1) is false if i is unsigned (-1 will be converted to # a large positive value). We certainly don't want to do this by # accident. compile_args.append('-Werror=sign-compare') link_args = pkg_config('fuse3', cflags=False, ldflags=True, min_ver='3.2.0') link_args.append('-lpthread') c_sources = ['src/pyfuse3.c'] if os.uname()[0] in ('Linux', 'GNU/kFreeBSD'): link_args.append('-lrt') elif os.uname()[0] == 'Darwin': c_sources.append('src/darwin_compat.c') setuptools.setup( name='pyfuse3', zip_safe=True, version=PYFUSE3_VERSION, description='Python 3 bindings for libfuse 3 with async I/O support', long_description=long_desc, author='Nikolaus Rath', author_email='Nikolaus@rath.org', url='https://github.com/libfuse/pyfuse3', license='LGPL', classifiers=['Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: System :: Filesystems', 'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)', 'Operating System :: POSIX :: Linux', 'Operating System :: MacOS :: MacOS X', 'Operating System :: POSIX :: BSD :: FreeBSD', 'Typing :: Typed'], platforms=[ 'Linux', 'FreeBSD', 'OS X' ], keywords=['FUSE', 'python' ], install_requires=['trio >= 0.15'], tests_require=['pytest >= 3.4.0', 'pytest-trio'], python_requires='>=3.8', package_dir={'': 'src'}, py_modules=['_pyfuse3', 'pyfuse3_asyncio'], provides=['pyfuse3'], ext_modules=[Extension('pyfuse3', c_sources, extra_compile_args=compile_args, extra_link_args=link_args)], cmdclass={'build_cython': build_cython}, ) def pkg_config(pkg, cflags=True, ldflags=False, min_ver=None): '''Frontend to ``pkg-config``''' if min_ver: cmd = ['pkg-config', pkg, '--atleast-version', min_ver ] if subprocess.call(cmd) != 0: cmd = ['pkg-config', '--modversion', pkg ] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) version = proc.communicate()[0].strip() if not version: raise SystemExit(2) # pkg-config generates error message already else: raise SystemExit('%s version too old (found: %s, required: %s)' % (pkg, version, min_ver)) cmd = ['pkg-config', pkg ] if cflags: cmd.append('--cflags') if ldflags: cmd.append('--libs') proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) cflags = proc.stdout.readline().rstrip() proc.stdout.close() if proc.wait() != 0: raise SystemExit(2) # pkg-config generates error message already return cflags.decode('us-ascii').split() class build_cython(setuptools.Command): user_options = [] boolean_options = [] description = "Compile .pyx to .c" def initialize_options(self): pass def finalize_options(self): self.extensions = self.distribution.ext_modules def run(self): cython = None version = None for c in ('cython3', 'cython'): try: version = subprocess.check_output([c, '--version'], universal_newlines=True, stderr=subprocess.STDOUT) cython = c except OSError: # file not found, permission denied, ..., see issue #63 pass if cython is None: raise SystemExit('Cython needs to be installed for this command') from None print(f"Using {version.strip()}.") cmd = [cython, '-Wextra', '--force', '-3', '--fast-fail', '--directive', 'embedsignature=True', '--include-dir', os.path.join(basedir, 'Include'), '--verbose' ] if DEVELOPER_MODE: cmd.append('-Werror') # Work around http://trac.cython.org/cython_trac/ticket/714 cmd += ['-X', 'warn.maybe_uninitialized=False' ] for extension in self.extensions: for file_ in extension.sources: (file_, ext) = os.path.splitext(file_) path = os.path.join(basedir, file_) if ext != '.c': continue if os.path.exists(path + '.pyx'): if subprocess.call(cmd + [path + '.pyx']) != 0: raise SystemExit('Cython compilation failed') if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5559611 pyfuse3-3.3.0/src/0000775000175000017500000000000014463757517011635 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/_pyfuse3.py0000664000175000017500000005773414461445163013751 0ustar00twtw''' _pyfuse3.py Pure-Python components of pyfuse3. Copyright © 2018 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import errno import functools import logging from typing import TYPE_CHECKING, Callable, NewType, Optional, Sequence, Tuple # These types are specific instances of builtin types: FileHandleT = NewType("FileHandleT", int) FileNameT = NewType("FileNameT", bytes) FlagT = NewType("FlagT", int) InodeT = NewType("InodeT", int) ModeT = NewType("ModeT", int) if TYPE_CHECKING: # These types are defined elsewhere in the C code from pyfuse3 import (EntryAttributes, FileInfo, FUSEError, ReaddirToken, RequestContext, SetattrFields, StatvfsData) else: # Will be injected by pyfuse3 extension module FUSEError = None __all__ = ['Operations', 'async_wrapper'] log = logging.getLogger(__name__) # Any top level trio coroutines (i.e., coroutines that are passed # to trio.run) must be pure-Python. This wrapper ensures that this # is the case for Cython-defined async functions. def async_wrapper(fn: Callable) -> Callable: @functools.wraps(fn) async def wrapper(*args, **kwargs): # type: ignore await fn(*args, **kwargs) return wrapper class Operations: ''' This class defines the request handler methods that an pyfuse3 file system may implement. If a particular request handler has not been implemented, it must raise `FUSEError` with an errorcode of `errno.ENOSYS`. Further requests of this type will then be handled directly by the FUSE kernel module without calling the handler again. The only exception that request handlers are allowed to raise is `FUSEError`. This will cause the specified errno to be returned by the syscall that is being handled. It is recommended that file systems are derived from this class and only overwrite the handlers that they actually implement. (The methods defined in this class all just raise ``FUSEError(ENOSYS)`` or do nothing). ''' supports_dot_lookup: bool = True enable_writeback_cache: bool = False enable_acl: bool = False def init(self) -> None: '''Initialize operations. This method will be called just before the file system starts handling requests. It must not raise any exceptions (not even `FUSEError`), since it is not handling a particular client request. ''' pass async def lookup( self, parent_inode: InodeT, name: FileNameT, ctx: "RequestContext" ) -> "EntryAttributes": '''Look up a directory entry by name and get its attributes. This method should return an `EntryAttributes` instance for the directory entry *name* in the directory with inode *parent_inode*. If there is no such entry, the method should either return an `EntryAttributes` instance with zero ``st_ino`` value (in which case the negative lookup will be cached as specified by ``entry_timeout``), or it should raise `FUSEError` with an errno of `errno.ENOENT` (in this case the negative result will not be cached). *ctx* will be a `RequestContext` instance. The file system must be able to handle lookups for :file:`.` and :file:`..`, no matter if these entries are returned by `readdir` or not. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def forget( self, inode_list: Sequence[Tuple[InodeT, int]] ) -> None: '''Decrease lookup counts for inodes in *inode_list*. *inode_list* is a list of ``(inode, nlookup)`` tuples. This method should reduce the lookup count for each *inode* by *nlookup*. If the lookup count reaches zero, the inode is currently not known to the kernel. In this case, the file system will typically check if there are still directory entries referring to this inode and, if not, remove the inode. If the file system is unmounted, it may not have received `forget` calls to bring all lookup counts to zero. The filesystem needs to take care to clean up inodes that at that point still have non-zero lookup count (e.g. by explicitly calling `forget` with the current lookup count for every such inode after `main` has returned). This method must not raise any exceptions (not even `FUSEError`), since it is not handling a particular client request. ''' pass async def getattr( self, inode: InodeT, ctx: "RequestContext" ) -> "EntryAttributes": '''Get attributes for *inode*. *ctx* will be a `RequestContext` instance. This method should return an `EntryAttributes` instance with the attributes of *inode*. The `~EntryAttributes.entry_timeout` attribute is ignored in this context. ''' raise FUSEError(errno.ENOSYS) async def setattr( self, inode: InodeT, attr: "EntryAttributes", fields: "SetattrFields", fh: Optional[FileHandleT], ctx: "RequestContext" ) -> "EntryAttributes": '''Change attributes of *inode*. *fields* will be an `SetattrFields` instance that specifies which attributes are to be updated. *attr* will be an `EntryAttributes` instance for *inode* that contains the new values for changed attributes, and undefined values for all other attributes. Most file systems will additionally set the `~EntryAttributes.st_ctime_ns` attribute to the current time (to indicate that the inode metadata was changed). If the syscall that is being processed received a file descriptor argument (like e.g. :manpage:`ftruncate(2)` or :manpage:`fchmod(2)`), *fh* will be the file handle returned by the corresponding call to the `open` handler. If the syscall was path based (like e.g. :manpage:`truncate(2)` or :manpage:`chmod(2)`), *fh* will be `None`. *ctx* will be a `RequestContext` instance. The method should return an `EntryAttributes` instance (containing both the changed and unchanged values). ''' raise FUSEError(errno.ENOSYS) async def readlink( self, inode: InodeT, ctx: "RequestContext" ) -> FileNameT: '''Return target of symbolic link *inode*. *ctx* will be a `RequestContext` instance. ''' raise FUSEError(errno.ENOSYS) async def mknod( self, parent_inode: InodeT, name: FileNameT, mode: ModeT, rdev: int, ctx: "RequestContext" ) -> "EntryAttributes": '''Create (possibly special) file. This method must create a (special or regular) file *name* in the directory with inode *parent_inode*. Whether the file is special or regular is determined by its *mode*. If the file is neither a block nor character device, *rdev* can be ignored. *ctx* will be a `RequestContext` instance. The method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def mkdir( self, parent_inode: InodeT, name: FileNameT, mode: ModeT, ctx: "RequestContext" ) -> "EntryAttributes": '''Create a directory. This method must create a new directory *name* with mode *mode* in the directory with inode *parent_inode*. *ctx* will be a `RequestContext` instance. This method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def unlink( self, parent_inode: InodeT, name: FileNameT, ctx: "RequestContext" ) -> None: '''Remove a (possibly special) file. This method must remove the (special or regular) file *name* from the direcory with inode *parent_inode*. *ctx* will be a `RequestContext` instance. If the inode associated with *file* (i.e., not the *parent_inode*) has a non-zero lookup count, or if there are still other directory entries referring to this inode (due to hardlinks), the file system must remove only the directory entry (so that future calls to `readdir` for *parent_inode* will no longer include *name*, but e.g. calls to `getattr` for *file*'s inode still succeed). (Potential) removal of the associated inode with the file contents and metadata must be deferred to the `forget` method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with the inode either). ''' raise FUSEError(errno.ENOSYS) async def rmdir( self, parent_inode: InodeT, name: FileNameT, ctx: "RequestContext" ) -> None: '''Remove directory *name*. This method must remove the directory *name* from the direcory with inode *parent_inode*. *ctx* will be a `RequestContext` instance. If there are still entries in the directory, the method should raise ``FUSEError(errno.ENOTEMPTY)``. If the inode associated with *name* (i.e., not the *parent_inode*) has a non-zero lookup count, the file system must remove only the directory entry (so that future calls to `readdir` for *parent_inode* will no longer include *name*, but e.g. calls to `getattr` for *file*'s inode still succeed). Removal of the associated inode holding the directory contents and metadata must be deferred to the `forget` method to be carried out when the lookup count reaches zero. (Since hard links to directories are not allowed by POSIX, this method is not required to check if there are still other directory entries refering to the same inode. This conveniently avoids the ambigiouties associated with the ``.`` and ``..`` entries). ''' raise FUSEError(errno.ENOSYS) async def symlink( self, parent_inode: InodeT, name: FileNameT, target: FileNameT, ctx: "RequestContext" ) -> "EntryAttributes": '''Create a symbolic link. This method must create a symbolink link named *name* in the directory with inode *parent_inode*, pointing to *target*. *ctx* will be a `RequestContext` instance. The method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def rename( self, parent_inode_old: InodeT, name_old: str, parent_inode_new: InodeT, name_new: str, flags: FlagT, ctx: "RequestContext" ) -> None: '''Rename a directory entry. This method must rename *name_old* in the directory with inode *parent_inode_old* to *name_new* in the directory with inode *parent_inode_new*. If *name_new* already exists, it should be overwritten. *flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If `RENAME_NOREPLACE` is specified, the filesystem must not overwrite *name_new* if it exists and return an error instead. If `RENAME_EXCHANGE` is specified, the filesystem must atomically exchange the two files, i.e. both must exist and neither may be deleted. *ctx* will be a `RequestContext` instance. Let the inode associated with *name_old* in *parent_inode_old* be *inode_moved*, and the inode associated with *name_new* in *parent_inode_new* (if it exists) be called *inode_deref*. If *inode_deref* exists and has a non-zero lookup count, or if there are other directory entries referring to *inode_deref*), the file system must update only the directory entry for *name_new* to point to *inode_moved* instead of *inode_deref*. (Potential) removal of *inode_deref* (containing the previous contents of *name_new*) must be deferred to the `forget` method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with *inode_deref* either). ''' raise FUSEError(errno.ENOSYS) async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: FileNameT, ctx: "RequestContext" ) -> "EntryAttributes": '''Create directory entry *name* in *parent_inode* refering to *inode*. *ctx* will be a `RequestContext` instance. The method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def open( self, inode: InodeT, flags: FlagT, ctx: "RequestContext" ) -> "FileInfo": '''Open a inode *inode* with *flags*. *ctx* will be a `RequestContext` instance. *flags* will be a bitwise or of the open flags described in the :manpage:`open(2)` manpage and defined in the `os` module (with the exception of ``O_CREAT``, ``O_EXCL``, ``O_NOCTTY`` and ``O_TRUNC``) This method must return a `FileInfo` instance. The `FileInfo.fh` field must contain an integer file handle, which will be passed to the `read`, `write`, `flush`, `fsync` and `release` methods to identify the open file. The `FileInfo` instance may also have relevant configuration attributes set; see the `FileInfo` documentation for more information. ''' raise FUSEError(errno.ENOSYS) async def read( self, fh: FileHandleT, off: int, size: int ) -> int: '''Read *size* bytes from *fh* at position *off*. *fh* will be an integer filehandle returned by a prior `open` or `create` call. This function should return exactly the number of bytes requested except on EOF or error, otherwise the rest of the data will be substituted with zeroes. ''' raise FUSEError(errno.ENOSYS) async def write( self, fh: FileHandleT, off: int, buf: bytes ) -> int: '''Write *buf* into *fh* at *off*. *fh* will be an integer filehandle returned by a prior `open` or `create` call. This method must return the number of bytes written. However, unless the file system has been mounted with the ``direct_io`` option, the file system *must* always write *all* the provided data (i.e., return ``len(buf)``). ''' raise FUSEError(errno.ENOSYS) async def flush( self, fh: FileHandleT ) -> None: '''Handle close() syscall. *fh* will be an integer filehandle returned by a prior `open` or `create` call. This method is called whenever a file descriptor is closed. It may be called multiple times for the same open file (e.g. if the file handle has been duplicated). ''' raise FUSEError(errno.ENOSYS) async def release( self, fh: FileHandleT ) -> None: '''Release open file. This method will be called when the last file descriptor of *fh* has been closed, i.e. when the file is no longer opened by any client process. *fh* will be an integer filehandle returned by a prior `open` or `create` call. Once `release` has been called, no future requests for *fh* will be received (until the value is re-used in the return value of another `open` or `create` call). This method may return an error by raising `FUSEError`, but the error will be discarded because there is no corresponding client request. ''' raise FUSEError(errno.ENOSYS) async def fsync( self, fh: FileHandleT, datasync: bool ) -> None: '''Flush buffers for open file *fh*. If *datasync* is true, only the file contents should be flushed (in contrast to the metadata about the file). *fh* will be an integer filehandle returned by a prior `open` or `create` call. ''' raise FUSEError(errno.ENOSYS) async def opendir( self, inode: InodeT, ctx: "RequestContext" ) -> FileHandleT: '''Open the directory with inode *inode*. *ctx* will be a `RequestContext` instance. This method should return an integer file handle. The file handle will be passed to the `readdir`, `fsyncdir` and `releasedir` methods to identify the directory. ''' raise FUSEError(errno.ENOSYS) async def readdir( self, fh: FileHandleT, start_id: int, token: "ReaddirToken" ) -> None: '''Read entries in open directory *fh*. This method should list the contents of directory *fh* (as returned by a prior `opendir` call), starting at the entry identified by *start_id*. Instead of returning the directory entries directly, the method must call `readdir_reply` for each directory entry. If `readdir_reply` returns True, the file system must increase the lookup count for the provided directory entry by one and call `readdir_reply` again for the next entry (if any). If `readdir_reply` returns False, the lookup count must *not* be increased and the method should return without further calls to `readdir_reply`. The *start_id* parameter will be either zero (in which case listing should begin with the first entry) or it will correspond to a value that was previously passed by the file system to the `readdir_reply` function in the *next_id* parameter. If entries are added or removed during a `readdir` cycle, they may or may not be returned. However, they must not cause other entries to be skipped or returned more than once. :file:`.` and :file:`..` entries may be included but are not required. However, if they are reported the filesystem *must not* increase the lookup count for the corresponding inodes (even if `readdir_reply` returns True). ''' raise FUSEError(errno.ENOSYS) async def releasedir( self, fh: FileHandleT ) -> None: '''Release open directory. This method will be called exactly once for each `opendir` call. After *fh* has been released, no further `readdir` requests will be received for it (until it is opened again with `opendir`). ''' raise FUSEError(errno.ENOSYS) async def fsyncdir( self, fh: FileHandleT, datasync: bool ) -> None: '''Flush buffers for open directory *fh*. If *datasync* is true, only the directory contents should be flushed (in contrast to metadata about the directory itself). ''' raise FUSEError(errno.ENOSYS) async def statfs( self, ctx: "RequestContext" ) -> "StatvfsData": '''Get file system statistics. *ctx* will be a `RequestContext` instance. The method must return an appropriately filled `StatvfsData` instance. ''' raise FUSEError(errno.ENOSYS) def stacktrace(self) -> None: '''Asynchronous debugging. This method will be called when the ``fuse_stacktrace`` extended attribute is set on the mountpoint. The default implementation logs the current stack trace of every running Python thread. This can be quite useful to debug file system deadlocks. ''' import sys import traceback from os.path import basename code = list() for threadId, frame in sys._current_frames().items(): code.append(f"\n# ThreadID: {threadId}") for filename, lineno, name, line in traceback.extract_stack(frame): code.append(f'{basename(filename)}:{lineno}, in {name}') if line: code.append(f" {line.strip()}") log.error("\n".join(code)) async def setxattr( self, inode: InodeT, name: bytes, value: bytes, ctx: "RequestContext" ) -> None: '''Set extended attribute *name* of *inode* to *value*. *ctx* will be a `RequestContext` instance. The attribute may or may not exist already. Both *name* and *value* will be of type `bytes`. *name* is guaranteed not to contain zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def getxattr( self, inode: InodeT, name: bytes, ctx: "RequestContext" ) -> bytes: '''Return extended attribute *name* of *inode*. *ctx* will be a `RequestContext` instance. If the attribute does not exist, the method must raise `FUSEError` with an error code of `ENOATTR`. *name* will be of type `bytes`, but is guaranteed not to contain zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def listxattr( self, inode: InodeT, ctx: "RequestContext" ) -> Sequence[bytes]: '''Get list of extended attributes for *inode*. *ctx* will be a `RequestContext` instance. This method must return a sequence of `bytes` objects. The objects must not include zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def removexattr( self, inode: InodeT, name: bytes, ctx: "RequestContext" ) -> None: '''Remove extended attribute *name* of *inode*. *ctx* will be a `RequestContext` instance. If the attribute does not exist, the method must raise `FUSEError` with an error code of `ENOATTR`. *name* will be of type `bytes`, but is guaranteed not to contain zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def access( self, inode: InodeT, mode: ModeT, ctx: "RequestContext" ) -> bool: '''Check if requesting process has *mode* rights on *inode*. *ctx* will be a `RequestContext` instance. The method must return a boolean value. If the ``default_permissions`` mount option is given, this method is not called. When implementing this method, the `get_sup_groups` function may be useful. ''' raise FUSEError(errno.ENOSYS) async def create( self, parent_inode: InodeT, name: FileNameT, mode: ModeT, flags: FlagT, ctx: "RequestContext" ) -> Tuple["FileInfo", "EntryAttributes"]: '''Create a file with permissions *mode* and open it with *flags*. *ctx* will be a `RequestContext` instance. The method must return a tuple of the form *(fi, attr)*, where *fi* is a FileInfo instance handle like the one returned by `open` and *attr* is an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/darwin_compat.c0000664000175000017500000001400114461445163014611 0ustar00twtw/* * Copyright (c) 2006-2008 Amit Singh/Google Inc. * Copyright (c) 2012 Anatol Pomozov * Copyright (c) 2011-2013 Benjamin Fleischer */ #include "darwin_compat.h" #include #include #include /* * Semaphore implementation based on: * * Copyright (C) 2000,02 Free Software Foundation, Inc. * This file is part of the GNU C Library. * Written by Gal Le Mignot * * The GNU C Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * The GNU C Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the GNU C Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* Semaphores */ #define __SEM_ID_NONE ((int)0x0) #define __SEM_ID_LOCAL ((int)0xcafef00d) /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_init.html */ int darwin_sem_init(darwin_sem_t *sem, int pshared, unsigned int value) { if (pshared) { errno = ENOSYS; return -1; } sem->id = __SEM_ID_NONE; if (pthread_cond_init(&sem->__data.local.count_cond, NULL)) { goto cond_init_fail; } if (pthread_mutex_init(&sem->__data.local.count_lock, NULL)) { goto mutex_init_fail; } sem->__data.local.count = value; sem->id = __SEM_ID_LOCAL; return 0; mutex_init_fail: pthread_cond_destroy(&sem->__data.local.count_cond); cond_init_fail: return -1; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_destroy.html */ int darwin_sem_destroy(darwin_sem_t *sem) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); sem->id = __SEM_ID_NONE; pthread_cond_broadcast(&sem->__data.local.count_cond); if (pthread_cond_destroy(&sem->__data.local.count_cond)) { res = -1; } pthread_mutex_unlock(&sem->__data.local.count_lock); if (pthread_mutex_destroy(&sem->__data.local.count_lock)) { res = -1; } return res; } int darwin_sem_getvalue(darwin_sem_t *sem, unsigned int *sval) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else { *sval = sem->__data.local.count; } pthread_mutex_unlock(&sem->__data.local.count_lock); return res; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_post.html */ int darwin_sem_post(darwin_sem_t *sem) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else if (sem->__data.local.count < DARWIN_SEM_VALUE_MAX) { sem->__data.local.count++; if (sem->__data.local.count == 1) { pthread_cond_signal(&sem->__data.local.count_cond); } } else { errno = ERANGE; res = -1; } pthread_mutex_unlock(&sem->__data.local.count_lock); return res; } /* http://www.opengroup.org/onlinepubs/009695399/functions/sem_timedwait.html */ int darwin_sem_timedwait(darwin_sem_t *sem, const struct timespec *abs_timeout) { int res = 0; if (abs_timeout && (abs_timeout->tv_nsec < 0 || abs_timeout->tv_nsec >= 1000000000)) { errno = EINVAL; return -1; } pthread_cleanup_push((void(*)(void*))&pthread_mutex_unlock, &sem->__data.local.count_lock); pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { errno = EINVAL; res = -1; } else { if (!sem->__data.local.count) { res = pthread_cond_timedwait(&sem->__data.local.count_cond, &sem->__data.local.count_lock, abs_timeout); } if (res) { assert(res == ETIMEDOUT); res = -1; errno = ETIMEDOUT; } else if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else { sem->__data.local.count--; } } pthread_cleanup_pop(1); return res; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_trywait.html */ int darwin_sem_trywait(darwin_sem_t *sem) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else if (sem->__data.local.count) { sem->__data.local.count--; } else { res = -1; errno = EAGAIN; } pthread_mutex_unlock (&sem->__data.local.count_lock); return res; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_wait.html */ int darwin_sem_wait(darwin_sem_t *sem) { /* Must be volatile or will be clobbered by longjmp */ volatile int res = 0; pthread_cleanup_push((void(*)(void*))&pthread_mutex_unlock, &sem->__data.local.count_lock); pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { errno = EINVAL; res = -1; } else { if (!sem->__data.local.count) { pthread_cond_wait(&sem->__data.local.count_cond, &sem->__data.local.count_lock); if (!sem->__data.local.count) { /* spurious wakeup, assume it is an interruption */ res = -1; errno = EINTR; goto out; } } if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else { sem->__data.local.count--; } } out: pthread_cleanup_pop(1); return res; } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/darwin_compat.h0000664000175000017500000000254014461445163014623 0ustar00twtw/* * Copyright (c) 2006-2008 Amit Singh/Google Inc. * Copyright (c) 2011-2013 Benjamin Fleischer */ #ifndef _DARWIN_COMPAT_ #define _DARWIN_COMPAT_ #include /* Semaphores */ typedef struct darwin_sem { int id; union { struct { unsigned int count; pthread_mutex_t count_lock; pthread_cond_t count_cond; } local; } __data; } darwin_sem_t; #define DARWIN_SEM_VALUE_MAX ((int32_t)32767) int darwin_sem_init(darwin_sem_t *sem, int pshared, unsigned int value); int darwin_sem_destroy(darwin_sem_t *sem); int darwin_sem_getvalue(darwin_sem_t *sem, unsigned int *value); int darwin_sem_post(darwin_sem_t *sem); int darwin_sem_timedwait(darwin_sem_t *sem, const struct timespec *abs_timeout); int darwin_sem_trywait(darwin_sem_t *sem); int darwin_sem_wait(darwin_sem_t *sem); /* Caller must not include */ typedef darwin_sem_t sem_t; #define sem_init(s, p, v) darwin_sem_init(s, p, v) #define sem_destroy(s) darwin_sem_destroy(s) #define sem_getvalue(s, v) darwin_sem_getvalue(s, v) #define sem_post(s) darwin_sem_post(s) #define sem_timedwait(s, t) darwin_sem_timedwait(s, t) #define sem_trywait(s) darwin_sem_trywait(s) #define sem_wait(s) darwin_sem_wait(s) #define SEM_VALUE_MAX DARWIN_SEM_VALUE_MAX #endif /* _DARWIN_COMPAT_ */ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/gettime.h0000664000175000017500000000167514461445163013442 0ustar00twtw/* * gettime.h * * Platform-independent interface to system clock * * Copyright © 2015 Nikolaus Rath * * This file is part of pyfuse3. This work may be distributed under the * terms of the GNU LGPL. */ /* * Linux */ #if PLATFORM == PLATFORM_LINUX #include static int gettime_realtime(struct timespec *tp) { return clock_gettime(CLOCK_REALTIME, tp); } /* * FreeBSD & NetBSD */ #elif PLATFORM == PLATFORM_BSD #include static int gettime_realtime(struct timespec *tp) { return clock_gettime(CLOCK_REALTIME, tp); } /* * Darwin */ #elif PLATFORM == PLATFORM_DARWIN #include static int gettime_realtime(struct timespec *tp) { struct timeval tv; int res; res = gettimeofday(&tv, NULL); if(res != 0) return -1; tp->tv_sec = tv.tv_sec; tp->tv_nsec = tv.tv_usec * 1000; return 0; } /* * Unknown system */ #else #error This should not happen #endif ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344016.0 pyfuse3-3.3.0/src/handlers.pxi0000664000175000017500000006154714463756220014162 0ustar00twtw''' handlers.pxi This file defines the FUSE request handlers. It is included by pyfuse3.pyx. Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' @cython.freelist(60) cdef class _Container: """For internal use by pyfuse3 only.""" # This serves as a generic container to pass C variables # through Python. Which fields have valid data depends on # context. cdef dev_t rdev cdef fuse_file_info fi cdef fuse_ino_t ino cdef fuse_ino_t parent cdef fuse_req_t req cdef int flags cdef mode_t mode cdef off_t off cdef size_t size cdef struct_stat stat cdef uint64_t fh cdef void fuse_init (void *userdata, fuse_conn_info *conn): if not conn.capable & FUSE_CAP_READDIRPLUS: raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) if (operations.supports_dot_lookup and conn.capable & FUSE_CAP_EXPORT_SUPPORT): conn.want |= FUSE_CAP_EXPORT_SUPPORT if (operations.enable_writeback_cache and conn.capable & FUSE_CAP_WRITEBACK_CACHE): conn.want |= FUSE_CAP_WRITEBACK_CACHE if (operations.enable_acl and conn.capable & FUSE_CAP_POSIX_ACL): conn.want |= FUSE_CAP_POSIX_ACL # Blocking rather than async, in case we decide to let the # init handler modify `conn` in the future. operations.init() cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) async def fuse_lookup_async (_Container c, name): cdef EntryAttributes entry cdef int ret ctx = get_request_context(c.req) try: entry = await operations.lookup( c.parent, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup): save_retval(operations.forget([(ino, nlookup)])) fuse_reply_none(req) cdef void fuse_forget_multi(fuse_req_t req, size_t count, fuse_forget_data *forgets): forget_list = list() for el in forgets[:count]: forget_list.append((el.ino, el.nlookup)) save_retval(operations.forget(forget_list)) fuse_reply_none(req) cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino save_retval(fuse_getattr_async(c)) async def fuse_getattr_async (_Container c): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.getattr(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) if ret != 0: log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, int to_set, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino c.stat = stat[0] c.flags = to_set if fi is NULL: fh = None else: fh = fi.fh save_retval(fuse_setattr_async(c, fh)) async def fuse_setattr_async (_Container c, fh): cdef int ret cdef timespec now cdef EntryAttributes entry cdef SetattrFields fields cdef struct_stat *attr cdef int to_set = c.flags ctx = get_request_context(c.req) entry = EntryAttributes() fields = SetattrFields.__new__(SetattrFields) string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) attr = entry.attr if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): ret = libc_extra.gettime_realtime(&now) if ret != 0: log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', strerror(errno.errno)) if to_set & FUSE_SET_ATTR_ATIME: fields.update_atime = True elif to_set & FUSE_SET_ATTR_ATIME_NOW: fields.update_atime = True attr.st_atime = now.tv_sec SET_ATIME_NS(attr, now.tv_nsec) if to_set & FUSE_SET_ATTR_MTIME: fields.update_mtime = True elif to_set & FUSE_SET_ATTR_MTIME_NOW: fields.update_mtime = True attr.st_mtime = now.tv_sec SET_MTIME_NS(attr, now.tv_nsec) fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) try: entry = await operations.setattr(c.ino, entry, fields, fh, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) if ret != 0: log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): cdef _Container c = _Container() c.req = req c.ino = ino save_retval(fuse_readlink_async(c)) async def fuse_readlink_async (_Container c): cdef int ret cdef char* name ctx = get_request_context(c.req) try: target = await operations.readlink(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: name = PyBytes_AsString(target) ret = fuse_reply_readlink(c.req, name) if ret != 0: log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, dev_t rdev): cdef _Container c = _Container() c.req = req c.parent = parent c.mode = mode c.rdev = rdev save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) async def fuse_mknod_async (_Container c, name): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.mknod( c.parent, name, c.mode, c.rdev, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode): cdef _Container c = _Container() c.req = req c.parent = parent c.mode = mode save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) async def fuse_mkdir_async (_Container c, name): cdef int ret cdef EntryAttributes entry # Force the entry type to directory. We need to explicitly cast, # because on BSD the S_* are not of type mode_t. c.mode = (c.mode & ~ S_IFMT) | S_IFDIR ctx = get_request_context(c.req) try: entry = await operations.mkdir( c.parent, name, c.mode, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) async def fuse_unlink_async (_Container c, name): cdef int ret ctx = get_request_context(c.req) try: await operations.unlink(c.parent, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) async def fuse_rmdir_async (_Container c, name): cdef int ret ctx = get_request_context(c.req) try: await operations.rmdir(c.parent, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_symlink_async( c, PyBytes_FromString(name), PyBytes_FromString(link))) async def fuse_symlink_async (_Container c, name, link): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.symlink( c.parent, name, link, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, fuse_ino_t newparent, const_char *newname, unsigned flags): cdef _Container c = _Container() c.req = req c.parent = parent c.ino = newparent c.flags = flags save_retval(fuse_rename_async( c, PyBytes_FromString(name), PyBytes_FromString(newname))) async def fuse_rename_async (_Container c, name, newname): cdef int ret cdef unsigned flags = c.flags cdef fuse_ino_t newparent = c.ino ctx = get_request_context(c.req) try: await operations.rename(c.parent, name, newparent, newname, flags, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, const_char *newname): cdef _Container c = _Container() c.req = req c.ino = ino c.parent = newparent save_retval(fuse_link_async(c, PyBytes_FromString(newname))) async def fuse_link_async (_Container c, newname): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.link( c.ino, c.parent, newname, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino c.fi = fi[0] save_retval(fuse_open_async(c)) async def fuse_open_async (_Container c): cdef int ret cdef FileInfo fi ctx = get_request_context(c.req) try: fi = await operations.open(c.ino, c.fi.flags, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: fi._copy_to_fuse(&c.fi) ret = fuse_reply_open(c.req, &c.fi) if ret != 0: log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.size = size c.off = off c.fh = fi.fh save_retval(fuse_read_async(c)) async def fuse_read_async (_Container c): cdef int ret cdef Py_buffer pybuf try: buf = await operations.read(c.fh, c.off, c.size) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) PyBuffer_Release(&pybuf) if ret != 0: log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, size_t size, off_t off, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.size = size c.off = off c.fh = fi.fh if size > PY_SSIZE_T_MAX: raise OverflowError('Value too long to convert to Python') pbuf = PyBytes_FromStringAndSize(buf, size) save_retval(fuse_write_async(c, pbuf)) async def fuse_write_async (_Container c, pbuf): cdef int ret cdef size_t len_ try: len_ = await operations.write(c.fh, c.off, pbuf) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_write(c.req, len_) if ret != 0: log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, off_t off, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.off = off c.fh = fi.fh buf = PyBytes_from_bufvec(bufv) save_retval(fuse_write_buf_async(c, buf)) async def fuse_write_buf_async (_Container c, buf): cdef int ret cdef size_t len_ try: len_ = await operations.write(c.fh, c.off, buf) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_write(c.req, len_) if ret != 0: log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.fh = fi.fh save_retval(fuse_flush_async(c)) async def fuse_flush_async (_Container c): cdef int ret try: await operations.flush(c.fh) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.fh = fi.fh save_retval(fuse_release_async(c)) async def fuse_release_async (_Container c): cdef int ret try: await operations.release(c.fh) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.flags = datasync c.fh = fi.fh save_retval(fuse_fsync_async(c)) async def fuse_fsync_async (_Container c): cdef int ret try: await operations.fsync(c.fh, c.flags != 0) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino c.fi = fi[0] save_retval(fuse_opendir_async(c)) async def fuse_opendir_async (_Container c): cdef int ret ctx = get_request_context(c.req) try: c.fi.fh = await operations.opendir(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_open(c.req, &c.fi) if ret != 0: log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) @cython.freelist(10) cdef class ReaddirToken: cdef fuse_req_t req cdef char *buf_start cdef char *buf cdef size_t size cdef void fuse_readdirplus (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi): global py_retval cdef _Container c = _Container() c.req = req c.size = size c.off = off c.fh = fi.fh save_retval(fuse_readdirplus_async(c)) async def fuse_readdirplus_async (_Container c): cdef int ret cdef ReaddirToken token = ReaddirToken() token.buf_start = NULL token.size = c.size token.req = c.req try: await operations.readdir(c.fh, c.off, token) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: if token.buf_start == NULL: ret = fuse_reply_buf(c.req, NULL, 0) else: ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) finally: stdlib.free(token.buf_start) if ret != 0: log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.fh = fi.fh save_retval(fuse_releasedir_async(c)) async def fuse_releasedir_async (_Container c): cdef int ret try: await operations.releasedir(c.fh) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.flags = datasync c.fh = fi.fh save_retval(fuse_fsyncdir_async(c)) async def fuse_fsyncdir_async (_Container c): cdef int ret try: await operations.fsyncdir(c.fh, c.flags != 0) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): cdef _Container c = _Container() c.req = req save_retval(fuse_statfs_async(c)) async def fuse_statfs_async (_Container c): cdef int ret cdef StatvfsData stats ctx = get_request_context(c.req) try: stats = await operations.statfs(ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_statfs(c.req, &stats.stat) if ret != 0: log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, const_char *cvalue, size_t size, int flags): cdef _Container c = _Container() c.req = req c.ino = ino c.size = size c.flags = flags name = PyBytes_FromString(cname) if c.size > PY_SSIZE_T_MAX: raise OverflowError('Value too long to convert to Python') value = PyBytes_FromStringAndSize(cvalue, c.size) save_retval(fuse_setxattr_async(c, name, value)) async def fuse_setxattr_async (_Container c, name, value): cdef int ret # Special case for deadlock debugging if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': operations.stacktrace() fuse_reply_err(c.req, 0) return # Make sure we know all the flags if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): raise ValueError('unknown flag(s): %o' % c.flags) ctx = get_request_context(c.req) try: if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist try: await operations.getxattr(c.ino, name, ctx) except FUSEError as e: if e.errno != ENOATTR: raise else: raise FUSEError(errno.EEXIST) elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist await operations.getxattr(c.ino, name, ctx) await operations.setxattr(c.ino, name, value, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, size_t size): cdef _Container c = _Container() c.req = req c.ino = ino c.size = size save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) async def fuse_getxattr_async (_Container c, name): cdef int ret cdef ssize_t len_s cdef size_t len_ cdef char *cbuf ctx = get_request_context(c.req) try: buf = await operations.getxattr(c.ino, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: PyBytes_AsStringAndSize(buf, &cbuf, &len_s) len_ = len_s # guaranteed positive if c.size == 0: ret = fuse_reply_xattr(c.req, len_) elif len_ <= c.size: ret = fuse_reply_buf(c.req, cbuf, len_) else: ret = fuse_reply_err(c.req, errno.ERANGE) if ret != 0: log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): cdef _Container c = _Container() c.req = req c.ino = ino c.size = size save_retval(fuse_listxattr_async(c)) async def fuse_listxattr_async (_Container c): cdef int ret cdef ssize_t len_s cdef size_t len_ cdef char *cbuf ctx = get_request_context(c.req) try: res = await operations.listxattr(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: buf = b'\0'.join(res) + b'\0' PyBytes_AsStringAndSize(buf, &cbuf, &len_s) len_ = len_s # guaranteed positive if len_ == 1: # No attributes len_ = 0 if c.size == 0: ret = fuse_reply_xattr(c.req, len_) elif len_ <= c.size: ret = fuse_reply_buf(c.req, cbuf, len_) else: ret = fuse_reply_err(c.req, errno.ERANGE) if ret != 0: log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): cdef _Container c = _Container() c.req = req c.ino = ino save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) async def fuse_removexattr_async (_Container c, name): cdef int ret ctx = get_request_context(c.req) try: await operations.removexattr(c.ino, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): cdef _Container c = _Container() c.req = req c.ino = ino c.flags = mask save_retval(fuse_access_async(c)) async def fuse_access_async (_Container c): cdef int ret cdef int mask = c.flags ctx = get_request_context(c.req) try: allowed = await operations.access(c.ino, mask, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: if allowed: ret = fuse_reply_err(c.req, 0) else: ret = fuse_reply_err(c.req, EACCES) if ret != 0: log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.parent = parent c.mode = mode c.fi = fi[0] save_retval(fuse_create_async(c, PyBytes_FromString(name))) async def fuse_create_async (_Container c, name): cdef int ret cdef EntryAttributes entry cdef FileInfo fi ctx = get_request_context(c.req) try: tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: fi = tmp[0] entry = tmp[1] fi._copy_to_fuse(&c.fi) ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) if ret != 0: log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/internal.pxi0000664000175000017500000002041614461445163014163 0ustar00twtw''' internal.pxi This file defines functions and data structures that are used internally by pyfuse3. It is included by pyfuse3.pyx. Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' cdef void save_retval(object val): global py_retval if py_retval is not None and val is not None: log.error('py_retval was not awaited - please report a bug at ' 'https://github.com/libfuse/pyfuse3/issues!') py_retval = val cdef object get_request_context(fuse_req_t req): '''Get RequestContext() object''' cdef const_fuse_ctx* context cdef RequestContext ctx context = fuse_req_ctx(req) ctx = RequestContext.__new__(RequestContext) ctx.pid = context.pid ctx.uid = context.uid ctx.gid = context.gid ctx.umask = context.umask return ctx cdef void init_fuse_ops(): '''Initialize fuse_lowlevel_ops structure''' string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops)) fuse_ops.init = fuse_init fuse_ops.lookup = fuse_lookup fuse_ops.forget = fuse_forget fuse_ops.getattr = fuse_getattr fuse_ops.setattr = fuse_setattr fuse_ops.readlink = fuse_readlink fuse_ops.mknod = fuse_mknod fuse_ops.mkdir = fuse_mkdir fuse_ops.unlink = fuse_unlink fuse_ops.rmdir = fuse_rmdir fuse_ops.symlink = fuse_symlink fuse_ops.rename = fuse_rename fuse_ops.link = fuse_link fuse_ops.open = fuse_open fuse_ops.read = fuse_read fuse_ops.write = fuse_write fuse_ops.flush = fuse_flush fuse_ops.release = fuse_release fuse_ops.fsync = fuse_fsync fuse_ops.opendir = fuse_opendir fuse_ops.readdirplus = fuse_readdirplus fuse_ops.releasedir = fuse_releasedir fuse_ops.fsyncdir = fuse_fsyncdir fuse_ops.statfs = fuse_statfs ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) fuse_ops.listxattr = fuse_listxattr fuse_ops.removexattr = fuse_removexattr fuse_ops.access = fuse_access fuse_ops.create = fuse_create fuse_ops.forget_multi = fuse_forget_multi fuse_ops.write_buf = fuse_write_buf cdef make_fuse_args(args, fuse_args* f_args): cdef char* arg cdef int i cdef ssize_t size_s cdef size_t size args_new = [ b'pyfuse3' ] for el in args: args_new.append(b'-o') args_new.append(el.encode('us-ascii')) args = args_new f_args.argc = len(args) if f_args.argc == 0: f_args.argv = NULL return f_args.allocated = 1 f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) if f_args.argv is NULL: cpython.exc.PyErr_NoMemory() try: for (i, el) in enumerate(args): PyBytes_AsStringAndSize(el, &arg, &size_s) size = size_s # guaranteed positive f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) if f_args.argv[i] is NULL: cpython.exc.PyErr_NoMemory() string.strncpy(f_args.argv[i], arg, size+1) except: for i in range(f_args.argc): # Freeing a NULL pointer (if this element has not been allocated # yet) is fine. stdlib.free(f_args.argv[i]) stdlib.free(f_args.argv) raise def _notify_loop(): '''Process async invalidate_entry calls.''' while True: req = _notify_queue.get() if req is None: log.debug('terminating notify thread') break (inode_p, name, deleted, ignore_enoent) = req try: invalidate_entry(inode_p, name, deleted) except Exception as exc: if ignore_enoent and isinstance(exc, FileNotFoundError): pass else: log.exception('Failed to submit invalidate_entry request for ' 'parent inode %d, name %s', req[0], req[1]) cdef str2bytes(s): '''Convert *s* to bytes''' return s.encode(fse, 'surrogateescape') cdef bytes2str(s): '''Convert *s* to str''' return s.decode(fse, 'surrogateescape') cdef strerror(int errno): try: return os.strerror(errno) except ValueError: return 'errno: %d' % errno cdef PyBytes_from_bufvec(fuse_bufvec *src): cdef fuse_bufvec dst cdef size_t len_ cdef ssize_t res len_ = fuse_buf_size(src) - src.off if len_ > PY_SSIZE_T_MAX: raise OverflowError('Value too long to convert to Python') buf = PyBytes_FromStringAndSize(NULL, len_) dst.count = 1 dst.idx = 0 dst.off = 0 dst.buf[0].mem = PyBytes_AS_STRING(buf) dst.buf[0].size = len_ dst.buf[0].flags = 0 res = fuse_buf_copy(&dst, src, 0) if res < 0: raise OSError(errno.errno, 'fuse_buf_copy failed with ' + strerror(errno.errno)) elif res < len_: # This is expected to be rare return buf[:res] else: return buf cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: cdef void* mem mem = stdlib.calloc(nmemb, size) if mem is NULL: raise MemoryError() return mem cdef class _WorkerData: """For internal use by pyfuse3 only.""" cdef int task_count cdef int task_serial cdef object read_lock cdef int active_readers def __init__(self): self.read_lock = trio.Lock() self.active_readers = 0 cdef get_name(self): self.task_serial += 1 return 'pyfuse-%02d' % self.task_serial # Delay initialization so that pyfuse3_asyncio can replace # the trio module. cdef _WorkerData worker_data async def _wait_fuse_readable(): '''Wait for FUSE fd to become readable Return True if the fd is readable, or False if the main loop should terminate. ''' #name = trio.lowlevel.current_task().name worker_data.active_readers += 1 try: #log.debug('%s: Waiting for read lock...', name) async with worker_data.read_lock: #log.debug('%s: Waiting for fuse fd to become readable...', name) if fuse_session_exited(session): log.debug('FUSE session exit flag set while waiting for FUSE fd ' 'to become readable.') return False await trio.lowlevel.wait_readable(session_fd) #log.debug('%s: fuse fd readable, unparking next task.', name) except trio.ClosedResourceError: log.debug('FUSE fd about to be closed.') return False finally: worker_data.active_readers -= 1 return True @async_wrapper async def _session_loop(nursery, int min_tasks, int max_tasks): cdef int res cdef fuse_buf buf name = trio.lowlevel.current_task().name buf.mem = NULL buf.size = 0 buf.pos = 0 buf.flags = 0 while not fuse_session_exited(session): if worker_data.active_readers > min_tasks: log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', name, worker_data.task_count, worker_data.active_readers) break if not await _wait_fuse_readable(): break res = fuse_session_receive_buf(session, &buf) if not worker_data.active_readers and worker_data.task_count < max_tasks: worker_data.task_count += 1 log.debug('%s: No tasks waiting, starting another worker (now %d total).', name, worker_data.task_count) nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, name=worker_data.get_name()) if res == -errno.EINTR: continue elif res < 0: raise OSError(-res, 'fuse_session_receive_buf failed with ' + strerror(-res)) elif res == 0: break # When fuse_session_process_buf() calls back into one of our handler # methods, the handler will start a co-routine and store it in # py_retval. #log.debug('%s: processing request...', name) save_retval(None) fuse_session_process_buf(session, &buf) if py_retval is not None: await py_retval #log.debug('%s: processing complete.', name) log.debug('%s: terminated', name) stdlib.free(buf.mem) worker_data.task_count -= 1 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/macros.c0000664000175000017500000000347714461445163013265 0ustar00twtw/* macros.c - Pre-processor macros Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. */ /* * Macros to access the nanosecond attributes in struct stat in a * platform independent way. Stolen from fuse_misc.h. */ #if PLATFORM == PLATFORM_LINUX #define GET_ATIME_NS(stbuf) ((stbuf)->st_atim.tv_nsec) #define GET_CTIME_NS(stbuf) ((stbuf)->st_ctim.tv_nsec) #define GET_MTIME_NS(stbuf) ((stbuf)->st_mtim.tv_nsec) #define SET_ATIME_NS(stbuf, val) (stbuf)->st_atim.tv_nsec = (val) #define SET_CTIME_NS(stbuf, val) (stbuf)->st_ctim.tv_nsec = (val) #define SET_MTIME_NS(stbuf, val) (stbuf)->st_mtim.tv_nsec = (val) #define GET_BIRTHTIME_NS(stbuf) (0) #define GET_BIRTHTIME(stbuf) (0) #define SET_BIRTHTIME_NS(stbuf, val) do {} while (0) #define SET_BIRTHTIME(stbuf, val) do {} while (0) /* BSD and OS-X */ #else #define GET_BIRTHTIME(stbuf) ((stbuf)->st_birthtime) #define SET_BIRTHTIME(stbuf, val) ((stbuf)->st_birthtime = (val)) #define GET_ATIME_NS(stbuf) ((stbuf)->st_atimespec.tv_nsec) #define GET_CTIME_NS(stbuf) ((stbuf)->st_ctimespec.tv_nsec) #define GET_MTIME_NS(stbuf) ((stbuf)->st_mtimespec.tv_nsec) #define GET_BIRTHTIME_NS(stbuf) ((stbuf)->st_birthtimespec.tv_nsec) #define SET_ATIME_NS(stbuf, val) ((stbuf)->st_atimespec.tv_nsec = (val)) #define SET_CTIME_NS(stbuf, val) ((stbuf)->st_ctimespec.tv_nsec = (val)) #define SET_MTIME_NS(stbuf, val) ((stbuf)->st_mtimespec.tv_nsec = (val)) #define SET_BIRTHTIME_NS(stbuf, val) ((stbuf)->st_birthtimespec.tv_nsec = (val)) #endif #if PLATFORM == PLATFORM_LINUX || PLATFORM == PLATFORM_BSD #define ASSIGN_DARWIN(x,y) #define ASSIGN_NOT_DARWIN(x,y) ((x) = (y)) #elif PLATFORM == PLATFORM_DARWIN #define ASSIGN_DARWIN(x,y) ((x) = (y)) #define ASSIGN_NOT_DARWIN(x,y) #else #error This should not happen #endif ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/macros.pxd0000664000175000017500000000144614461445163013630 0ustar00twtw''' macros.pxd Cython definitions for macros.c Copyright © 2018 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from posix.stat cimport struct_stat cdef extern from "macros.c" nogil: long GET_BIRTHTIME(struct_stat* buf) long GET_ATIME_NS(struct_stat* buf) long GET_CTIME_NS(struct_stat* buf) long GET_MTIME_NS(struct_stat* buf) long GET_BIRTHTIME_NS(struct_stat* buf) void SET_BIRTHTIME(struct_stat* buf, long val) void SET_ATIME_NS(struct_stat* buf, long val) void SET_CTIME_NS(struct_stat* buf, long val) void SET_MTIME_NS(struct_stat* buf, long val) void SET_BIRTHTIME_NS(struct_stat* buf, long val) void ASSIGN_DARWIN(void*, void*) void ASSIGN_NOT_DARWIN(void*, void*) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344152.0 pyfuse3-3.3.0/src/pyfuse3.c0000664000175000017500001300302114463756430013370 0ustar00twtw/* Generated by Cython 3.0.0 */ #ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN #endif /* PY_SSIZE_T_CLEAN */ #if defined(CYTHON_LIMITED_API) && 0 #ifndef Py_LIMITED_API #if CYTHON_LIMITED_API+0 > 0x03030000 #define Py_LIMITED_API CYTHON_LIMITED_API #else #define Py_LIMITED_API 0x03030000 #endif #endif #endif #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.7+ or Python 3.3+. #else #define CYTHON_ABI "3_0_0" #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." #define CYTHON_HEX_VERSION 0x030000F0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef HAVE_LONG_LONG #define HAVE_LONG_LONG #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #if defined(GRAALVM_PYTHON) /* For very preliminary testing purposes. Most variables are set the same as PyPy. The existence of this section does not imply that anything works or is even tested */ #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 1 #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) #endif #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 #endif #elif defined(PYPY_VERSION) #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 0 #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) #endif #if PY_VERSION_HEX < 0x03090000 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00) #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 #endif #elif defined(CYTHON_LIMITED_API) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 1 #define CYTHON_COMPILING_IN_GRAAL 0 #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_CLINE_IN_TRACEBACK #define CYTHON_CLINE_IN_TRACEBACK 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 1 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #endif #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 1 #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 1 #endif #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 #endif #elif defined(PY_NOGIL) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 0 #define CYTHON_COMPILING_IN_NOGIL 1 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #ifndef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 1 #endif #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 0 #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #ifndef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #endif #ifndef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #if PY_MAJOR_VERSION < 3 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #ifndef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #ifndef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_GIL #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6) #endif #ifndef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1) #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #ifndef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #endif #if PY_VERSION_HEX < 0x030400a1 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #elif !defined(CYTHON_USE_TP_FINALIZE) #define CYTHON_USE_TP_FINALIZE 1 #endif #if PY_VERSION_HEX < 0x030600B1 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #elif !defined(CYTHON_USE_DICT_VERSIONS) #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5) #endif #if PY_VERSION_HEX < 0x030700A3 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK 1 #endif #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if !defined(CYTHON_VECTORCALL) #define CYTHON_VECTORCALL (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1) #endif #define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1) #if CYTHON_USE_PYLONG_INTERNALS #if PY_MAJOR_VERSION < 3 #include "longintrepr.h" #endif #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED #if defined(__cplusplus) /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17 * but leads to warnings with -pedantic, since it is a C++17 feature */ #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) #if __has_cpp_attribute(maybe_unused) #define CYTHON_UNUSED [[maybe_unused]] #endif #endif #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_UNUSED_VAR( const T& ) { } # else # define CYTHON_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x) #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifdef _MSC_VER #ifndef _MSC_STDINT_H_ #if _MSC_VER < 1300 typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #else typedef unsigned __int8 uint8_t; typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; #endif #endif #if _MSC_VER < 1300 #ifdef _WIN64 typedef unsigned long long __pyx_uintptr_t; #else typedef unsigned int __pyx_uintptr_t; #endif #else #ifdef _WIN64 typedef unsigned __int64 __pyx_uintptr_t; #else typedef unsigned __int32 __pyx_uintptr_t; #endif #endif #else #include typedef uintptr_t __pyx_uintptr_t; #endif #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) /* for clang __has_cpp_attribute(fallthrough) is true even before C++17 * but leads to warnings with -pedantic, since it is a C++17 feature */ #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifdef __cplusplus template struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);}; #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL::value) #else #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0) #endif #if CYTHON_COMPILING_IN_PYPY == 1 #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000) #else #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000) #endif #define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer)) #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_DefaultClassType PyClass_Type #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #define __Pyx_DefaultClassType PyType_Type #if PY_VERSION_HEX >= 0x030B00A1 static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f, PyObject *code, PyObject *c, PyObject* n, PyObject *v, PyObject *fv, PyObject *cell, PyObject* fn, PyObject *name, int fline, PyObject *lnos) { PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *empty=NULL; const char *fn_cstr=NULL; const char *name_cstr=NULL; PyCodeObject *co=NULL, *result=NULL; PyObject *type, *value, *traceback; PyErr_Fetch(&type, &value, &traceback); if (!(kwds=PyDict_New())) goto end; if (!(argcount=PyLong_FromLong(a))) goto end; if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; if (!(posonlyargcount=PyLong_FromLong(p))) goto end; if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; if (!(nlocals=PyLong_FromLong(l))) goto end; if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; if (!(stacksize=PyLong_FromLong(s))) goto end; if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; if (!(flags=PyLong_FromLong(f))) goto end; if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto end; if (!(empty = PyTuple_New(0))) goto end; result = (PyCodeObject*) PyObject_Call(replace, empty, kwds); end: Py_XDECREF((PyObject*) co); Py_XDECREF(kwds); Py_XDECREF(argcount); Py_XDECREF(posonlyargcount); Py_XDECREF(kwonlyargcount); Py_XDECREF(nlocals); Py_XDECREF(stacksize); Py_XDECREF(replace); Py_XDECREF(empty); if (type) { PyErr_Restore(type, value, traceback); } return result; } #elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #endif #if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE) #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type) #else #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type)) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is) #define __Pyx_Py_Is(x, y) Py_Is(x, y) #else #define __Pyx_Py_Is(x, y) ((x) == (y)) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone) #define __Pyx_Py_IsNone(ob) Py_IsNone(ob) #else #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue) #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob) #else #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse) #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob) #else #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False) #endif #define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj)) #if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o) #else #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o) #endif #ifndef CO_COROUTINE #define CO_COROUTINE 0x80 #endif #ifndef CO_ASYNC_GENERATOR #define CO_ASYNC_GENERATOR 0x200 #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef Py_TPFLAGS_SEQUENCE #define Py_TPFLAGS_SEQUENCE 0 #endif #ifndef Py_TPFLAGS_MAPPING #define Py_TPFLAGS_MAPPING 0 #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #if CYTHON_METH_FASTCALL #define __Pyx_METH_FASTCALL METH_FASTCALL #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords #else #define __Pyx_METH_FASTCALL METH_VARARGS #define __Pyx_PyCFunction_FastCall PyCFunction #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords #endif #if CYTHON_VECTORCALL #define __pyx_vectorcallfunc vectorcallfunc #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n)) #elif CYTHON_BACKPORT_VECTORCALL typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwnames); #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1)) #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)) #else #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n)) #endif #if PY_VERSION_HEX < 0x030900B1 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b)) typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *); #else #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b) #define __Pyx_PyCMethod PyCMethod #endif #ifndef METH_METHOD #define METH_METHOD 0x200 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyThreadState_Current PyThreadState_Get() #elif !CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #elif PY_VERSION_HEX >= 0x03000000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif #if CYTHON_COMPILING_IN_LIMITED_API static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op) { void *result; result = PyModule_GetState(op); if (!result) Py_FatalError("Couldn't find the module state"); return result; } #endif #define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype) #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name)) #else #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name) #endif #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) #include "pythread.h" #define Py_tss_NEEDS_INIT 0 typedef int Py_tss_t; static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { *key = PyThread_create_key(); return 0; } static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); *key = Py_tss_NEEDS_INIT; return key; } static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { PyObject_Free(key); } static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { return *key != Py_tss_NEEDS_INIT; } static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { PyThread_delete_key(*key); *key = Py_tss_NEEDS_INIT; } static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { return PyThread_set_key_value(*key, value); } static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { return PyThread_get_key_value(*key); } #endif #if PY_MAJOR_VERSION < 3 #if CYTHON_COMPILING_IN_PYPY #if PYPY_VERSION_NUM < 0x07030600 #if defined(__cplusplus) && __cplusplus >= 201402L [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]] #elif defined(__GNUC__) || defined(__clang__) __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))) #elif defined(_MSC_VER) __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")) #endif static CYTHON_INLINE int PyGILState_Check(void) { return 0; } #else // PYPY_VERSION_NUM < 0x07030600 #endif // PYPY_VERSION_NUM < 0x07030600 #else static CYTHON_INLINE int PyGILState_Check(void) { PyThreadState * tstate = _PyThreadState_Current; return tstate && (tstate == PyGILState_GetThisThreadState()); } #endif #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) { PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name); if (res == NULL) PyErr_Clear(); return res; } #elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000) #define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError #define __Pyx_PyDict_GetItemStr PyDict_GetItem #else static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) { #if CYTHON_COMPILING_IN_PYPY return PyDict_GetItem(dict, name); #else PyDictEntry *ep; PyDictObject *mp = (PyDictObject*) dict; long hash = ((PyStringObject *) name)->ob_shash; assert(hash != -1); ep = (mp->ma_lookup)(mp, name, hash); if (ep == NULL) { return NULL; } return ep->me_value; #endif } #define __Pyx_PyDict_GetItemStr PyDict_GetItem #endif #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags) #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0) #define __Pyx_PyObject_GetIterNextFunc(obj) (Py_TYPE(obj)->tp_iternext) #else #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp)) #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature) #define __Pyx_PyObject_GetIterNextFunc(obj) PyIter_Next #endif #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000 #define __Pyx_PyHeapTypeObject_GC_Del(obj) {\ PyTypeObject *type = Py_TYPE(obj);\ assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\ PyObject_GC_Del(obj);\ Py_DECREF(type);\ } #else #define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GetLength(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U) #define __Pyx_PyUnicode_KIND(u) ((void)u, (0)) #define __Pyx_PyUnicode_DATA(u) ((void*)u) #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i)) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u)) #elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #if PY_VERSION_HEX >= 0x030C0000 #define __Pyx_PyUnicode_READY(op) (0) #else #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u)) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch) #if PY_VERSION_HEX >= 0x030C0000 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #else #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #endif #endif #else #define CYTHON_PEP393_ENABLED 0 #define PyUnicode_1BYTE_KIND 1 #define PyUnicode_2BYTE_KIND 2 #define PyUnicode_4BYTE_KIND 4 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U) #define __Pyx_PyUnicode_KIND(u) ((int)sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = (Py_UNICODE) ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY #if !defined(PyUnicode_DecodeUnicodeEscape) #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors) #endif #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500) #undef PyUnicode_Contains #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #ifndef PyObject_Unicode #define PyObject_Unicode PyObject_Str #endif #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PySequence_ListKeepNew(obj)\ (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj)) #else #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) __Pyx_IS_TYPE(obj, &PySet_Type) #endif #if PY_VERSION_HEX >= 0x030900A4 #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) #else #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #else #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define __Pyx_Py3Int_Check(op) PyLong_Check(op) #define __Pyx_Py3Int_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #else #define __Pyx_Py3Int_Check(op) (PyLong_Check(op) || PyInt_Check(op)) #define __Pyx_Py3Int_CheckExact(op) (PyLong_CheckExact(op) || PyInt_CheckExact(op)) #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t #endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef __Pyx_PyAsyncMethodsStruct typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) #if !defined(_USE_MATH_DEFINES) #define _USE_MATH_DEFINES #endif #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #define __PYX_MARK_ERR_POS(f_index, lineno) \ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } #define __PYX_ERR(f_index, lineno, Ln_error) \ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } #ifdef CYTHON_EXTERN_C #undef __PYX_EXTERN_C #define __PYX_EXTERN_C CYTHON_EXTERN_C #elif defined(__PYX_EXTERN_C) #ifdef _MSC_VER #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.") #else #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead. #endif #else #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pyfuse3 #define __PYX_HAVE_API__pyfuse3 /* Early includes */ #include "pyfuse3.h" #include #include #include #include #include #include #include #include #include #include "xattr.h" #include "gettime.h" #include #include #include #include "macros.c" #include #include #include #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) #if CYTHON_COMPILING_IN_LIMITED_API static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const wchar_t *u) { const wchar_t *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #else static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #endif #define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o) #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #if CYTHON_USE_PYLONG_INTERNALS #if PY_VERSION_HEX >= 0x030C00A7 #ifndef _PyLong_SIGN_MASK #define _PyLong_SIGN_MASK 3 #endif #ifndef _PyLong_NON_SIZE_BITS #define _PyLong_NON_SIZE_BITS 3 #endif #define __Pyx_PyLong_Sign(x) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK) #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_Sign(x) & 2) != 0) #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x)) #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_Sign(x) & 1) #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_Sign(x) == 0) #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0]) #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS)) #define __Pyx_PyLong_SignedDigitCount(x)\ ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x)) #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue) #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x) #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x) #else #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS)) #define __Pyx_PyLong_CompactValue(x) ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0]) #endif typedef Py_ssize_t __Pyx_compact_pylong; typedef size_t __Pyx_compact_upylong; #else // Py < 3.12 #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0) #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0) #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0) #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0) #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0]) #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x)) #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x) #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1) #define __Pyx_PyLong_CompactValue(x)\ ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0])) typedef sdigit __Pyx_compact_pylong; typedef digit __Pyx_compact_upylong; #endif #if PY_VERSION_HEX >= 0x030C00A5 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit) #else #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit) #endif #endif #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = (char) c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } #if !CYTHON_USE_MODULE_STATE static PyObject *__pyx_m = NULL; #endif static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm = __FILE__; static const char *__pyx_filename; /* #### Code section: filename_table ### */ static const char *__pyx_f[] = { "", "src/handlers.pxi", "src/internal.pxi", "src/pyfuse3.pyx", "type.pxd", }; /* #### Code section: utility_code_proto_before_types ### */ /* NoFastGil.proto */ #define __Pyx_PyGILState_Ensure PyGILState_Ensure #define __Pyx_PyGILState_Release PyGILState_Release #define __Pyx_FastGIL_Remember() #define __Pyx_FastGIL_Forget() #define __Pyx_FastGilFuncInit() /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* #### Code section: numeric_typedefs ### */ /* #### Code section: complex_type_declarations ### */ /* #### Code section: type_declarations ### */ /*--- Type declarations ---*/ struct __pyx_obj_7pyfuse3__Container; struct __pyx_obj_7pyfuse3_ReaddirToken; struct __pyx_obj_7pyfuse3__WorkerData; struct __pyx_obj_7pyfuse3_RequestContext; struct __pyx_obj_7pyfuse3_SetattrFields; struct __pyx_obj_7pyfuse3_EntryAttributes; struct __pyx_obj_7pyfuse3_FileInfo; struct __pyx_obj_7pyfuse3_StatvfsData; struct __pyx_obj_7pyfuse3_FUSEError; struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable; struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop; struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main; struct __pyx_defaults; typedef struct __pyx_defaults __pyx_defaults; struct __pyx_defaults { PyObject *__pyx_arg_options; }; /* "src/handlers.pxi":14 * * @cython.freelist(60) * cdef class _Container: # <<<<<<<<<<<<<< * """For internal use by pyfuse3 only.""" * */ struct __pyx_obj_7pyfuse3__Container { PyObject_HEAD dev_t rdev; struct fuse_file_info fi; fuse_ino_t ino; fuse_ino_t parent; fuse_req_t req; int flags; mode_t mode; off_t off; size_t size; struct stat stat; uint64_t fh; }; /* "src/handlers.pxi":562 * * @cython.freelist(10) * cdef class ReaddirToken: # <<<<<<<<<<<<<< * cdef fuse_req_t req * cdef char *buf_start */ struct __pyx_obj_7pyfuse3_ReaddirToken { PyObject_HEAD fuse_req_t req; char *buf_start; char *buf; size_t size; }; /* "src/internal.pxi":181 * return mem * * cdef class _WorkerData: # <<<<<<<<<<<<<< * """For internal use by pyfuse3 only.""" * */ struct __pyx_obj_7pyfuse3__WorkerData { PyObject_HEAD struct __pyx_vtabstruct_7pyfuse3__WorkerData *__pyx_vtab; int task_count; int task_serial; PyObject *read_lock; int active_readers; }; /* "pyfuse3.pyx":131 * * @cython.freelist(10) * cdef class RequestContext: # <<<<<<<<<<<<<< * ''' * Instances of this class are passed to some `Operations` methods to */ struct __pyx_obj_7pyfuse3_RequestContext { PyObject_HEAD uid_t uid; pid_t pid; gid_t gid; mode_t umask; }; /* "pyfuse3.pyx":148 * * @cython.freelist(10) * cdef class SetattrFields: # <<<<<<<<<<<<<< * ''' * `SetattrFields` instances are passed to the `~Operations.setattr` handler */ struct __pyx_obj_7pyfuse3_SetattrFields { PyObject_HEAD PyObject *update_atime; PyObject *update_mtime; PyObject *update_ctime; PyObject *update_mode; PyObject *update_uid; PyObject *update_gid; PyObject *update_size; }; /* "pyfuse3.pyx":176 * * @cython.freelist(30) * cdef class EntryAttributes: # <<<<<<<<<<<<<< * ''' * Instances of this class store attributes of directory entries. */ struct __pyx_obj_7pyfuse3_EntryAttributes { PyObject_HEAD struct fuse_entry_param fuse_param; struct stat *attr; }; /* "pyfuse3.pyx":356 * * @cython.freelist(10) * cdef class FileInfo: # <<<<<<<<<<<<<< * ''' * Instances of this class store options and data that `Operations.open` */ struct __pyx_obj_7pyfuse3_FileInfo { PyObject_HEAD struct __pyx_vtabstruct_7pyfuse3_FileInfo *__pyx_vtab; uint64_t fh; int direct_io; int keep_cache; int nonseekable; }; /* "pyfuse3.pyx":397 * * @cython.freelist(1) * cdef class StatvfsData: # <<<<<<<<<<<<<< * ''' * Instances of this class store information about the file system. */ struct __pyx_obj_7pyfuse3_StatvfsData { PyObject_HEAD struct statvfs stat; }; /* "pyfuse3.pyx":488 * # As of Cython 0.28.1, @cython.freelist cannot be used for * # classes that derive from a builtin type. * cdef class FUSEError(Exception): # <<<<<<<<<<<<<< * ''' * This exception may be raised by request handlers to indicate that */ struct __pyx_obj_7pyfuse3_FUSEError { PyBaseExceptionObject __pyx_base; int errno_; }; /* "src/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async { PyObject_HEAD struct stat *__pyx_v_attr; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_fh; struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_fields; struct timespec __pyx_v_now; int __pyx_v_ret; int __pyx_v_to_set; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; char *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_v_target; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_link; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; unsigned int __pyx_v_flags; PyObject *__pyx_v_name; PyObject *__pyx_v_newname; fuse_ino_t __pyx_v_newparent; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_newname; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_fi; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; Py_buffer __pyx_v_pybuf; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; size_t __pyx_v_len_; PyObject *__pyx_v_pbuf; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; size_t __pyx_v_len_; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; int __pyx_v_ret; struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_stats; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_v_value; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; }; /* "src/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; char *__pyx_v_cbuf; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; size_t __pyx_v_len_; Py_ssize_t __pyx_v_len_s; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; char *__pyx_v_cbuf; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; size_t __pyx_v_len_; Py_ssize_t __pyx_v_len_s; PyObject *__pyx_v_res; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async { PyObject_HEAD PyObject *__pyx_v_allowed; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; int __pyx_v_mask; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/handlers.pxi":848 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_fi; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_v_tmp; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/internal.pxi":201 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable { PyObject_HEAD PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; PyObject *__pyx_t_6; PyObject *__pyx_t_7; PyObject *__pyx_t_8; PyObject *__pyx_t_9; PyObject *__pyx_t_10; PyObject *__pyx_t_11; }; /* "src/internal.pxi":229 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop { PyObject_HEAD struct fuse_buf __pyx_v_buf; int __pyx_v_max_tasks; int __pyx_v_min_tasks; PyObject *__pyx_v_name; PyObject *__pyx_v_nursery; int __pyx_v_res; }; /* "pyfuse3.pyx":770 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main { PyObject_HEAD int __pyx_v_max_tasks; int __pyx_v_min_tasks; PyObject *__pyx_v_nursery; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; PyObject *__pyx_t_6; PyObject *__pyx_t_7; }; /* "src/internal.pxi":181 * return mem * * cdef class _WorkerData: # <<<<<<<<<<<<<< * """For internal use by pyfuse3 only.""" * */ struct __pyx_vtabstruct_7pyfuse3__WorkerData { PyObject *(*get_name)(struct __pyx_obj_7pyfuse3__WorkerData *); }; static struct __pyx_vtabstruct_7pyfuse3__WorkerData *__pyx_vtabptr_7pyfuse3__WorkerData; /* "pyfuse3.pyx":356 * * @cython.freelist(10) * cdef class FileInfo: # <<<<<<<<<<<<<< * ''' * Instances of this class store options and data that `Operations.open` */ struct __pyx_vtabstruct_7pyfuse3_FileInfo { PyObject *(*_copy_to_fuse)(struct __pyx_obj_7pyfuse3_FileInfo *, struct fuse_file_info *); }; static struct __pyx_vtabstruct_7pyfuse3_FileInfo *__pyx_vtabptr_7pyfuse3_FileInfo; /* #### Code section: utility_code_proto ### */ /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, Py_ssize_t); void (*DECREF)(void*, PyObject*, Py_ssize_t); void (*GOTREF)(void*, PyObject*, Py_ssize_t); void (*GIVEREF)(void*, PyObject*, Py_ssize_t); void* (*SetupContext)(const char*, Py_ssize_t, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ } #define __Pyx_RefNannyFinishContextNogil() {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __Pyx_RefNannyFinishContext();\ PyGILState_Release(__pyx_gilstate_save);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__)) #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext() #endif #define __Pyx_RefNannyFinishContextNogil() {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __Pyx_RefNannyFinishContext();\ PyGILState_Release(__pyx_gilstate_save);\ } #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContextNogil() #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_Py_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; Py_XDECREF(tmp);\ } while (0) #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyErrExceptionMatches.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #if PY_VERSION_HEX >= 0x030C00A6 #define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL) #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL) #else #define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL) #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type) #endif #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL) #define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred() #endif /* PyErrFetchRestore.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* PyObjectGetAttrStrNoError.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* TupleAndListFromArray.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n); static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n); #endif /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* fastcall.proto */ #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i) #define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds) #define __Pyx_KwValues_VARARGS(args, nargs) NULL #define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s) #define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw) #if CYTHON_METH_FASTCALL #define __Pyx_Arg_FASTCALL(args, i) args[i] #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds) #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs)) static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s); #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw) #else #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS #endif #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start) #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start) #else #define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop) #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop) #endif /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* KeywordStringCheck.proto */ static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed); /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyFunctionFastCall.proto */ #if CYTHON_FAST_PYCALL #if !CYTHON_VECTORCALL #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #endif #define __Pyx_BUILD_ASSERT_EXPR(cond)\ (sizeof(char [1 - 2*!(cond)]) - 1) #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif #if !CYTHON_VECTORCALL #if PY_VERSION_HEX >= 0x03080000 #include "frameobject.h" #if PY_VERSION_HEX >= 0x030b00a6 #ifndef Py_BUILD_CORE #define Py_BUILD_CORE 1 #endif #include "internal/pycore_frame.h" #endif #define __Pxy_PyFrame_Initialize_Offsets() #define __Pyx_PyFrame_GetLocalsplus(frame) ((frame)->f_localsplus) #else static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif #endif #endif /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectFastCall.proto */ #define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL) static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs); /* PyObjectCallNoArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); /* PyDictVersioning.proto */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __pyx_dict_cached_value;\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) do {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } while(0) #define __Pyx_GetModuleGlobalNameUncached(var, name) do {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } while(0) static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\ __Pyx__ArgTypeTest(obj, type, name, exact)) static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); /* IncludeStructmemberH.proto */ #include /* FixUpExtensionType.proto */ #if CYTHON_USE_TYPE_SPECS static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type); #endif /* FetchSharedCythonModule.proto */ static PyObject *__Pyx_FetchSharedCythonABIModule(void); /* FetchCommonType.proto */ #if !CYTHON_USE_TYPE_SPECS static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); #else static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases); #endif /* GetTopmostException.proto */ #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); #endif /* SaveResetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* SwapException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* PyObjectCall2Args.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* PyObjectGetMethod.proto */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); /* PyObjectCallMethod1.proto */ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); /* CoroutineBase.proto */ struct __pyx_CoroutineObject; typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *); #if CYTHON_USE_EXC_INFO_STACK #define __Pyx_ExcInfoStruct _PyErr_StackItem #else typedef struct { PyObject *exc_type; PyObject *exc_value; PyObject *exc_traceback; } __Pyx_ExcInfoStruct; #endif typedef struct __pyx_CoroutineObject { PyObject_HEAD __pyx_coroutine_body_t body; PyObject *closure; __Pyx_ExcInfoStruct gi_exc_state; PyObject *gi_weakreflist; PyObject *classobj; PyObject *yieldfrom; PyObject *gi_name; PyObject *gi_qualname; PyObject *gi_modulename; PyObject *gi_code; PyObject *gi_frame; int resume_label; char is_running; } __pyx_CoroutineObject; static __pyx_CoroutineObject *__Pyx__Coroutine_New( PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name); static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name); static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self); static int __Pyx_Coroutine_clear(PyObject *self); static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value); static PyObject *__Pyx_Coroutine_Close(PyObject *self); static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args); #if CYTHON_USE_EXC_INFO_STACK #define __Pyx_Coroutine_SwapException(self) #define __Pyx_Coroutine_ResetAndClearException(self) __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state) #else #define __Pyx_Coroutine_SwapException(self) {\ __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\ __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\ } #define __Pyx_Coroutine_ResetAndClearException(self) {\ __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\ (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\ } #endif #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue) #else #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue) #endif static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue); static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state); /* PyObject_GenericGetAttrNoDict.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr #endif /* PatchModuleWithCoroutine.proto */ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code); /* PatchGeneratorABC.proto */ static int __Pyx_patch_abc(void); /* Coroutine.proto */ #define __Pyx_Coroutine_USED #define __Pyx_Coroutine_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CoroutineType) #define __Pyx_Coroutine_Check(obj) __Pyx_Coroutine_CheckExact(obj) #define __Pyx_CoroutineAwait_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CoroutineAwaitType) #define __Pyx_Coroutine_New(body, code, closure, name, qualname, module_name)\ __Pyx__Coroutine_New(__pyx_CoroutineType, body, code, closure, name, qualname, module_name) static int __pyx_Coroutine_init(PyObject *module); static PyObject *__Pyx__Coroutine_await(PyObject *coroutine); typedef struct { PyObject_HEAD PyObject *coroutine; } __pyx_CoroutineAwaitObject; static PyObject *__Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self, PyObject *arg); static PyObject *__Pyx_CoroutineAwait_Throw(__pyx_CoroutineAwaitObject *self, PyObject *args); /* GetAwaitIter.proto */ static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o); static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *o); /* CoroutineYieldFrom.proto */ static CYTHON_INLINE PyObject* __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source); /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* pep479.proto */ static void __Pyx_Generator_Replace_StopIteration(int in_async_gen); /* ListAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); __Pyx_SET_SIZE(list, len + 1); return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* StringJoin.proto */ #if PY_MAJOR_VERSION < 3 #define __Pyx_PyString_Join __Pyx_PyBytes_Join #define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v)) #else #define __Pyx_PyString_Join PyUnicode_Join #define __Pyx_PyBaseString_Join PyUnicode_Join #endif #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION < 3 #define __Pyx_PyBytes_Join _PyString_Join #else #define __Pyx_PyBytes_Join _PyBytes_Join #endif #else static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values); #endif /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* GetAttr3.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /* RaiseUnexpectedTypeError.proto */ static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj); /* PyObjectLookupSpecial.proto */ #if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 0) #define __Pyx_PyObject_LookupSpecial(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 1) static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error); #else #define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n) #define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) #endif /* ReturnWithStopIteration.proto */ #define __Pyx_ReturnWithStopIteration(value)\ if (value == Py_None) PyErr_SetNone(PyExc_StopIteration); else __Pyx__ReturnWithStopIteration(value) static void __Pyx__ReturnWithStopIteration(PyObject* value); /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) #define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2)) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif #define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2) #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* PyObjectCallMethod0.proto */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto */ #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\ (likely(is_tuple || PyTuple_Check(tuple)) ?\ (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\ __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\ (__Pyx_UnpackTupleError(tuple, 2), -1)) :\ __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple)) static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); static int __Pyx_unpack_tuple2_generic( PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* PyObjectSetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); #else #define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) #endif /* RaiseUnboundLocalError.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* SliceObject.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** py_start, PyObject** py_stop, PyObject** py_slice, int has_cstart, int has_cstop, int wraparound); /* PySequenceContains.proto */ static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { int result = PySequence_Contains(seq, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* HasAttr.proto */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); /* ValidateBasesTuple.proto */ #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases); #endif /* PyType_Ready.proto */ CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t); /* PyObject_GenericGetAttr.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr #endif /* SetupReduce.proto */ #if !CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_setup_reduce(PyObject* type_obj); #endif /* SetVTable.proto */ static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable); /* GetVTable.proto */ static void* __Pyx_GetVtable(PyTypeObject *type); /* MergeVTables.proto */ #if !CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_MergeVtables(PyTypeObject *type); #endif /* FormatTypeName.proto */ #if CYTHON_COMPILING_IN_LIMITED_API typedef PyObject *__Pyx_TypeName; #define __Pyx_FMT_TYPENAME "%U" static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp); #define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj) #else typedef const char *__Pyx_TypeName; #define __Pyx_FMT_TYPENAME "%.200s" #define __Pyx_PyType_GetName(tp) ((tp)->tp_name) #define __Pyx_DECREF_TypeName(obj) #endif /* ValidateExternBase.proto */ static int __Pyx_validate_extern_base(PyTypeObject *base); /* TypeImport.proto */ #ifndef __PYX_HAVE_RT_ImportType_proto_3_0_0 #define __PYX_HAVE_RT_ImportType_proto_3_0_0 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L #include #endif #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L #define __PYX_GET_STRUCT_ALIGNMENT_3_0_0(s) alignof(s) #else #define __PYX_GET_STRUCT_ALIGNMENT_3_0_0(s) sizeof(void*) #endif enum __Pyx_ImportType_CheckSize_3_0_0 { __Pyx_ImportType_CheckSize_Error_3_0_0 = 0, __Pyx_ImportType_CheckSize_Warn_3_0_0 = 1, __Pyx_ImportType_CheckSize_Ignore_3_0_0 = 2 }; static PyTypeObject *__Pyx_ImportType_3_0_0(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_0 check_size); #endif /* ImportDottedModule.proto */ static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple); #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple); #endif /* decode_c_string_utf16.proto */ static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 0; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = -1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } /* decode_c_string.proto */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); /* Globals.proto */ static PyObject* __Pyx_Globals(void); /* PyMethodNew.proto */ #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { CYTHON_UNUSED_VAR(typ); if (!self) return __Pyx_NewRef(func); return PyMethod_New(func, self); } #else #define __Pyx_PyMethod_New PyMethod_New #endif /* PyVectorcallFastCallDict.proto */ #if CYTHON_METH_FASTCALL static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw); #endif /* CythonFunctionShared.proto */ #define __Pyx_CyFunction_USED #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CYFUNCTION_COROUTINE 0x08 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #if PY_VERSION_HEX < 0x030900B1 #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #else #define __Pyx_CyFunction_GetClassObj(f)\ ((PyObject*) ((PyCMethodObject *) (f))->mm_class) #endif #define __Pyx_CyFunction_SetClassObj(f, classobj)\ __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj)) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { #if PY_VERSION_HEX < 0x030900B1 PyCFunctionObject func; #else PyCMethodObject func; #endif #if CYTHON_BACKPORT_VECTORCALL __pyx_vectorcallfunc func_vectorcall; #endif #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; #if PY_VERSION_HEX < 0x030900B1 PyObject *func_classobj; #endif void *defaults; int defaults_pyobjects; size_t defaults_size; // used by FusedFunction for copying defaults int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; PyObject *func_is_coroutine; } __pyx_CyFunctionObject; #define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_CyFunctionType) #define __Pyx_IsCyOrPyCFunction(obj) __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type) #define __Pyx_CyFunction_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CyFunctionType) static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(PyObject *module); #if CYTHON_METH_FASTCALL static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); #if CYTHON_BACKPORT_VECTORCALL #define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall) #else #define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall) #endif #endif /* CythonFunction.proto */ static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject *globals, PyObject* code); /* pyfrozenset_new.proto */ static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it); /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #else static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #endif /* CodeObjectCache.proto */ #if !CYTHON_COMPILING_IN_LIMITED_API typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); #endif /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); /* GCCDiagnostics.proto */ #if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define __Pyx_HAS_GCC_DIAGNOSTIC #endif /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_gid_t(gid_t value); /* CIntFromPy.proto */ static CYTHON_INLINE gid_t __Pyx_PyInt_As_gid_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_pid_t(pid_t value); /* CIntFromPy.proto */ static CYTHON_INLINE pid_t __Pyx_PyInt_As_pid_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uid_t(uid_t value); /* CIntFromPy.proto */ static CYTHON_INLINE uid_t __Pyx_PyInt_As_uid_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mode_t(mode_t value); /* CIntFromPy.proto */ static CYTHON_INLINE mode_t __Pyx_PyInt_As_mode_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE fuse_ino_t __Pyx_PyInt_As_fuse_ino_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fuse_ino_t(fuse_ino_t value); /* CIntFromPy.proto */ static CYTHON_INLINE off_t __Pyx_PyInt_As_off_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_dev_t(dev_t value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_off_t(off_t value); /* CIntFromPy.proto */ static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* CIntFromPy.proto */ static CYTHON_INLINE ino_t __Pyx_PyInt_As_ino_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_nlink_t(nlink_t value); /* CIntFromPy.proto */ static CYTHON_INLINE nlink_t __Pyx_PyInt_As_nlink_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE dev_t __Pyx_PyInt_As_dev_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_blkcnt_t(blkcnt_t value); /* CIntFromPy.proto */ static CYTHON_INLINE blkcnt_t __Pyx_PyInt_As_blkcnt_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_blksize_t(blksize_t value); /* CIntFromPy.proto */ static CYTHON_INLINE blksize_t __Pyx_PyInt_As_blksize_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_time_t(time_t value); /* CIntFromPy.proto */ static CYTHON_INLINE time_t __Pyx_PyInt_As_time_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned long __Pyx_PyInt_As_unsigned_long(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fsblkcnt_t(fsblkcnt_t value); /* CIntFromPy.proto */ static CYTHON_INLINE fsblkcnt_t __Pyx_PyInt_As_fsblkcnt_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fsfilcnt_t(fsfilcnt_t value); /* CIntFromPy.proto */ static CYTHON_INLINE fsfilcnt_t __Pyx_PyInt_As_fsfilcnt_t(PyObject *); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /* #### Code section: module_declarations ### */ static PyObject *__pyx_f_7pyfuse3_11_WorkerData_get_name(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self); /* proto*/ static PyObject *__pyx_f_7pyfuse3_8FileInfo__copy_to_fuse(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, struct fuse_file_info *__pyx_v_out); /* proto*/ /* Module declarations from "fuse_opt" */ /* Module declarations from "posix.types" */ /* Module declarations from "libc.stdint" */ /* Module declarations from "fuse_common" */ /* Module declarations from "posix.signal" */ /* Module declarations from "posix.time" */ /* Module declarations from "posix.stat" */ /* Module declarations from "libc_extra" */ /* Module declarations from "libc.string" */ /* Module declarations from "libc.stdlib" */ /* Module declarations from "fuse_lowlevel" */ /* Module declarations from "macros" */ /* Module declarations from "libc" */ /* Module declarations from "libc.errno" */ /* Module declarations from "posix" */ /* Module declarations from "posix.unistd" */ /* Module declarations from "libc.stdio" */ /* Module declarations from "__builtin__" */ /* Module declarations from "cpython.type" */ /* Module declarations from "cpython.exc" */ /* Module declarations from "cpython" */ /* Module declarations from "cpython.object" */ /* Module declarations from "cpython.bytes" */ /* Module declarations from "cpython.buffer" */ /* Module declarations from "cython" */ /* Module declarations from "pyfuse3" */ static PyObject *__pyx_v_7pyfuse3_operations = 0; static PyObject *__pyx_v_7pyfuse3_mountpoint_b = 0; static struct fuse_session *__pyx_v_7pyfuse3_session; static struct fuse_lowlevel_ops __pyx_v_7pyfuse3_fuse_ops; static int __pyx_v_7pyfuse3_session_fd; static PyObject *__pyx_v_7pyfuse3_py_retval = 0; static PyObject *__pyx_v_7pyfuse3__notify_queue = 0; static struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_7pyfuse3_worker_data = 0; static void __pyx_f_7pyfuse3_fuse_init(void *, struct fuse_conn_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_lookup(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_forget(fuse_req_t, fuse_ino_t, uint64_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_forget_multi(fuse_req_t, size_t, struct fuse_forget_data *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_getattr(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_setattr(fuse_req_t, fuse_ino_t, struct stat *, int, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_readlink(fuse_req_t, fuse_ino_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_mknod(fuse_req_t, fuse_ino_t, const char *, mode_t, dev_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_mkdir(fuse_req_t, fuse_ino_t, const char *, mode_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_unlink(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_rmdir(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_symlink(fuse_req_t, const char *, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_rename(fuse_req_t, fuse_ino_t, const char *, fuse_ino_t, const char *, unsigned int); /*proto*/ static void __pyx_f_7pyfuse3_fuse_link(fuse_req_t, fuse_ino_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_open(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_read(fuse_req_t, fuse_ino_t, size_t, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_write(fuse_req_t, fuse_ino_t, const char *, size_t, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_write_buf(fuse_req_t, fuse_ino_t, struct fuse_bufvec *, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_flush(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_release(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_fsync(fuse_req_t, fuse_ino_t, int, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_opendir(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_readdirplus(fuse_req_t, fuse_ino_t, size_t, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_releasedir(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_fsyncdir(fuse_req_t, fuse_ino_t, int, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_statfs(fuse_req_t, fuse_ino_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_setxattr(fuse_req_t, fuse_ino_t, const char *, const char *, size_t, int); /*proto*/ static void __pyx_f_7pyfuse3_fuse_getxattr(fuse_req_t, fuse_ino_t, const char *, size_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_listxattr(fuse_req_t, fuse_ino_t, size_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_removexattr(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_access(fuse_req_t, fuse_ino_t, int); /*proto*/ static void __pyx_f_7pyfuse3_fuse_create(fuse_req_t, fuse_ino_t, const char *, mode_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_save_retval(PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_get_request_context(fuse_req_t); /*proto*/ static void __pyx_f_7pyfuse3_init_fuse_ops(void); /*proto*/ static PyObject *__pyx_f_7pyfuse3_make_fuse_args(PyObject *, struct fuse_args *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_str2bytes(PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_bytes2str(PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_strerror(int); /*proto*/ static PyObject *__pyx_f_7pyfuse3_PyBytes_from_bufvec(struct fuse_bufvec *); /*proto*/ static void *__pyx_f_7pyfuse3_calloc_or_raise(size_t, size_t); /*proto*/ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(struct __pyx_obj_7pyfuse3__WorkerData *, PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(struct __pyx_obj_7pyfuse3_RequestContext *, PyObject *); /*proto*/ /* #### Code section: typeinfo ### */ /* #### Code section: before_global_var ### */ #define __Pyx_MODULE_NAME "pyfuse3" extern int __pyx_module_is_main_pyfuse3; int __pyx_module_is_main_pyfuse3 = 0; /* Implementation of "pyfuse3" */ /* #### Code section: global_var ### */ static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_OverflowError; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_OSError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_open; /* #### Code section: string_decls ### */ static const char __pyx_k_c[] = "c"; static const char __pyx_k_e[] = "e"; static const char __pyx_k_g[] = "g"; static const char __pyx_k_k[] = "k"; static const char __pyx_k_o[] = "-o"; static const char __pyx_k_r[] = "r"; static const char __pyx_k_t[] = "t"; static const char __pyx_k_v[] = "v"; static const char __pyx_k_x[] = "x"; static const char __pyx_k_fd[] = "fd"; static const char __pyx_k_fh[] = "fh"; static const char __pyx_k_fi[] = "fi"; static const char __pyx_k_gc[] = "gc"; static const char __pyx_k_os[] = "os"; static const char __pyx_k__29[] = "\000"; static const char __pyx_k__47[] = "."; static const char __pyx_k__49[] = "?"; static const char __pyx_k__50[] = "*"; static const char __pyx_k_buf[] = "buf"; static const char __pyx_k_ctx[] = "ctx"; static const char __pyx_k_exc[] = "exc"; static const char __pyx_k_fse[] = "fse"; static const char __pyx_k_get[] = "get"; static const char __pyx_k_ino[] = "ino"; static const char __pyx_k_len[] = "len_"; static const char __pyx_k_log[] = "log"; static const char __pyx_k_new[] = "__new__"; static const char __pyx_k_now[] = "now"; static const char __pyx_k_off[] = "off"; static const char __pyx_k_ops[] = "ops"; static const char __pyx_k_pid[] = "pid"; static const char __pyx_k_put[] = "put"; static const char __pyx_k_req[] = "req"; static const char __pyx_k_res[] = "res"; static const char __pyx_k_ret[] = "ret"; static const char __pyx_k_sys[] = "sys"; static const char __pyx_k_tmp[] = "tmp"; static const char __pyx_k_Lock[] = "Lock"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_attr[] = "attr"; static const char __pyx_k_cbuf[] = "cbuf"; static const char __pyx_k_data[] = "data"; static const char __pyx_k_dict[] = "__dict__"; static const char __pyx_k_dirp[] = "dirp"; static const char __pyx_k_exit[] = "__exit__"; static const char __pyx_k_gids[] = "gids"; static const char __pyx_k_init[] = "init"; static const char __pyx_k_join[] = "join"; static const char __pyx_k_line[] = "line"; static const char __pyx_k_link[] = "link"; static const char __pyx_k_main[] = "main"; static const char __pyx_k_mask[] = "mask"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_open[] = "open"; static const char __pyx_k_path[] = "path"; static const char __pyx_k_pbuf[] = "pbuf"; static const char __pyx_k_read[] = "read"; static const char __pyx_k_self[] = "self"; static const char __pyx_k_send[] = "send"; static const char __pyx_k_slen[] = "slen"; static const char __pyx_k_spec[] = "__spec__"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_trio[] = "trio"; static const char __pyx_k_user[] = "user"; static const char __pyx_k_FlagT[] = "FlagT"; static const char __pyx_k_ModeT[] = "ModeT"; static const char __pyx_k_Queue[] = "Queue"; static const char __pyx_k_aexit[] = "__aexit__"; static const char __pyx_k_await[] = "__await__"; static const char __pyx_k_close[] = "close"; static const char __pyx_k_cname[] = "cname"; static const char __pyx_k_cpath[] = "cpath"; static const char __pyx_k_debug[] = "debug"; static const char __pyx_k_enter[] = "__enter__"; static const char __pyx_k_entry[] = "entry"; static const char __pyx_k_errno[] = "errno"; static const char __pyx_k_error[] = "error"; static const char __pyx_k_flags[] = "flags"; static const char __pyx_k_flush[] = "flush"; static const char __pyx_k_fsync[] = "fsync"; static const char __pyx_k_inode[] = "inode"; static const char __pyx_k_items[] = "items"; static const char __pyx_k_len_s[] = "len_s"; static const char __pyx_k_mkdir[] = "mkdir"; static const char __pyx_k_mknod[] = "mknod"; static const char __pyx_k_names[] = "names"; static const char __pyx_k_pybuf[] = "pybuf"; static const char __pyx_k_queue[] = "queue"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_rmdir[] = "rmdir"; static const char __pyx_k_split[] = "split"; static const char __pyx_k_start[] = "start"; static const char __pyx_k_state[] = "state"; static const char __pyx_k_stats[] = "stats"; static const char __pyx_k_throw[] = "throw"; static const char __pyx_k_token[] = "token"; static const char __pyx_k_value[] = "value"; static const char __pyx_k_write[] = "write"; static const char __pyx_k_Groups[] = "Groups:"; static const char __pyx_k_InodeT[] = "InodeT"; static const char __pyx_k_Thread[] = "Thread"; static const char __pyx_k_access[] = "access"; static const char __pyx_k_aenter[] = "__aenter__"; static const char __pyx_k_bufvec[] = "bufvec"; static const char __pyx_k_create[] = "create"; static const char __pyx_k_cvalue[] = "cvalue"; static const char __pyx_k_daemon[] = "daemon"; static const char __pyx_k_decode[] = "decode"; static const char __pyx_k_dict_2[] = "_dict"; static const char __pyx_k_enable[] = "enable"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_f_args[] = "f_args"; static const char __pyx_k_fields[] = "fields"; static const char __pyx_k_forget[] = "forget"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_lookup[] = "lookup"; static const char __pyx_k_main_2[] = "__main__"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_name_b[] = "name_b"; static const char __pyx_k_offset[] = "offset"; static const char __pyx_k_path_b[] = "path_b"; static const char __pyx_k_pickle[] = "pickle"; static const char __pyx_k_reduce[] = "__reduce__"; static const char __pyx_k_rename[] = "rename"; static const char __pyx_k_st_gid[] = "st_gid"; static const char __pyx_k_st_ino[] = "st_ino"; static const char __pyx_k_st_uid[] = "st_uid"; static const char __pyx_k_statfs[] = "statfs"; static const char __pyx_k_syncfs[] = "syncfs"; static const char __pyx_k_system[] = "system"; static const char __pyx_k_target[] = "target"; static const char __pyx_k_to_set[] = "to_set"; static const char __pyx_k_typing[] = "typing"; static const char __pyx_k_unlink[] = "unlink"; static const char __pyx_k_update[] = "update"; static const char __pyx_k_ENOATTR[] = "ENOATTR"; static const char __pyx_k_OSError[] = "OSError"; static const char __pyx_k_abspath[] = "abspath"; static const char __pyx_k_allowed[] = "allowed"; static const char __pyx_k_bufsize[] = "bufsize"; static const char __pyx_k_deleted[] = "deleted"; static const char __pyx_k_disable[] = "disable"; static const char __pyx_k_errno_d[] = "errno: %d"; static const char __pyx_k_f_bfree[] = "f_bfree"; static const char __pyx_k_f_bsize[] = "f_bsize"; static const char __pyx_k_f_ffree[] = "f_ffree"; static const char __pyx_k_f_files[] = "f_files"; static const char __pyx_k_getattr[] = "getattr"; static const char __pyx_k_inode_p[] = "inode_p"; static const char __pyx_k_listdir[] = "listdir"; static const char __pyx_k_logging[] = "logging"; static const char __pyx_k_newname[] = "newname"; static const char __pyx_k_next_id[] = "next_id"; static const char __pyx_k_nursery[] = "nursery"; static const char __pyx_k_opendir[] = "opendir"; static const char __pyx_k_options[] = "options"; static const char __pyx_k_os_path[] = "os.path"; static const char __pyx_k_pyfuse3[] = "pyfuse3"; static const char __pyx_k_readdir[] = "readdir"; static const char __pyx_k_release[] = "release"; static const char __pyx_k_setattr[] = "setattr"; static const char __pyx_k_st_mode[] = "st_mode"; static const char __pyx_k_st_rdev[] = "st_rdev"; static const char __pyx_k_st_size[] = "st_size"; static const char __pyx_k_symlink[] = "symlink"; static const char __pyx_k_unmount[] = "unmount"; static const char __pyx_k_version[] = "__version__"; static const char __pyx_k_FileInfo[] = "FileInfo"; static const char __pyx_k_f_bavail[] = "f_bavail"; static const char __pyx_k_f_blocks[] = "f_blocks"; static const char __pyx_k_f_favail[] = "f_favail"; static const char __pyx_k_f_frsize[] = "f_frsize"; static const char __pyx_k_fsyncdir[] = "fsyncdir"; static const char __pyx_k_getstate[] = "__getstate__"; static const char __pyx_k_getxattr[] = "getxattr"; static const char __pyx_k_lowlevel[] = "lowlevel"; static const char __pyx_k_pyx_type[] = "__pyx_type"; static const char __pyx_k_readlink[] = "readlink"; static const char __pyx_k_setstate[] = "__setstate__"; static const char __pyx_k_setxattr[] = "setxattr"; static const char __pyx_k_st_nlink[] = "st_nlink"; static const char __pyx_k_strerror[] = "strerror"; static const char __pyx_k_us_ascii[] = "us-ascii"; static const char __pyx_k_Container[] = "_Container"; static const char __pyx_k_FUSEError[] = "FUSEError"; static const char __pyx_k_FileNameT[] = "FileNameT"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_attr_only[] = "attr_only"; static const char __pyx_k_direct_io[] = "direct_io"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_exception[] = "exception"; static const char __pyx_k_f_namemax[] = "f_namemax"; static const char __pyx_k_getLogger[] = "getLogger"; static const char __pyx_k_isenabled[] = "isenabled"; static const char __pyx_k_listxattr[] = "listxattr"; static const char __pyx_k_max_tasks[] = "max_tasks"; static const char __pyx_k_min_tasks[] = "min_tasks"; static const char __pyx_k_namespace[] = "namespace"; static const char __pyx_k_newparent[] = "newparent"; static const char __pyx_k_pyfuse3_2[] = "_pyfuse3"; static const char __pyx_k_pyx_state[] = "__pyx_state"; static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; static const char __pyx_k_st_blocks[] = "st_blocks"; static const char __pyx_k_terminate[] = "terminate"; static const char __pyx_k_threading[] = "threading"; static const char __pyx_k_Operations[] = "Operations"; static const char __pyx_k_ROOT_INODE[] = "ROOT_INODE"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_WorkerData[] = "_WorkerData"; static const char __pyx_k_cnamespace[] = "cnamespace"; static const char __pyx_k_enable_acl[] = "enable_acl"; static const char __pyx_k_generation[] = "generation"; static const char __pyx_k_keep_cache[] = "keep_cache"; static const char __pyx_k_mountpoint[] = "mountpoint"; static const char __pyx_k_pyfuse_02d[] = "pyfuse-%02d"; static const char __pyx_k_pyx_result[] = "__pyx_result"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_releasedir[] = "releasedir"; static const char __pyx_k_size_guess[] = "size_guess"; static const char __pyx_k_st_blksize[] = "st_blksize"; static const char __pyx_k_stacktrace[] = "stacktrace"; static const char __pyx_k_start_soon[] = "start_soon"; static const char __pyx_k_startswith[] = "startswith"; static const char __pyx_k_trio_token[] = "trio_token"; static const char __pyx_k_FileHandleT[] = "FileHandleT"; static const char __pyx_k_MemoryError[] = "MemoryError"; static const char __pyx_k_O_DIRECTORY[] = "O_DIRECTORY"; static const char __pyx_k_PickleError[] = "PickleError"; static const char __pyx_k_StatvfsData[] = "StatvfsData"; static const char __pyx_k_nonseekable[] = "nonseekable"; static const char __pyx_k_notify_loop[] = "_notify_loop"; static const char __pyx_k_removexattr[] = "removexattr"; static const char __pyx_k_st_atime_ns[] = "st_atime_ns"; static const char __pyx_k_st_ctime_ns[] = "st_ctime_ns"; static const char __pyx_k_st_mtime_ns[] = "st_mtime_ns"; static const char __pyx_k_ReaddirToken[] = "ReaddirToken"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_attr_timeout[] = "attr_timeout"; static const char __pyx_k_current_task[] = "current_task"; static const char __pyx_k_initializing[] = "_initializing"; static const char __pyx_k_is_coroutine[] = "_is_coroutine"; static const char __pyx_k_notify_store[] = "notify_store"; static const char __pyx_k_open_nursery[] = "open_nursery"; static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; static const char __pyx_k_s_terminated[] = "%s: terminated"; static const char __pyx_k_session_loop[] = "_session_loop"; static const char __pyx_k_stringsource[] = ""; static const char __pyx_k_use_setstate[] = "use_setstate"; static const char __pyx_k_NANOS_PER_SEC[] = "_NANOS_PER_SEC"; static const char __pyx_k_OverflowError[] = "OverflowError"; static const char __pyx_k_PicklingError[] = "PicklingError"; static const char __pyx_k_SetattrFields[] = "SetattrFields"; static const char __pyx_k_TYPE_CHECKING[] = "TYPE_CHECKING"; static const char __pyx_k_async_wrapper[] = "async_wrapper"; static const char __pyx_k_entry_timeout[] = "entry_timeout"; static const char __pyx_k_ignore_enoent[] = "ignore_enoent"; static const char __pyx_k_proc_d_status[] = "/proc/%d/status"; static const char __pyx_k_readdir_reply[] = "readdir_reply"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_wait_readable[] = "wait_readable"; static const char __pyx_k_RequestContext[] = "RequestContext"; static const char __pyx_k_get_sup_groups[] = "get_sup_groups"; static const char __pyx_k_notify_closing[] = "notify_closing"; static const char __pyx_k_EntryAttributes[] = "EntryAttributes"; static const char __pyx_k_RENAME_EXCHANGE[] = "RENAME_EXCHANGE"; static const char __pyx_k_default_options[] = "default_options"; static const char __pyx_k_fuse_link_async[] = "fuse_link_async"; static const char __pyx_k_fuse_open_async[] = "fuse_open_async"; static const char __pyx_k_fuse_read_async[] = "fuse_read_async"; static const char __pyx_k_fuse_stacktrace[] = "fuse_stacktrace"; static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; static const char __pyx_k_src_pyfuse3_pyx[] = "src/pyfuse3.pyx"; static const char __pyx_k_st_birthtime_ns[] = "st_birthtime_ns"; static const char __pyx_k_surrogateescape[] = "surrogateescape"; static const char __pyx_k_RENAME_NOREPLACE[] = "RENAME_NOREPLACE"; static const char __pyx_k_fuse_flush_async[] = "fuse_flush_async"; static const char __pyx_k_fuse_fsync_async[] = "fuse_fsync_async"; static const char __pyx_k_fuse_mkdir_async[] = "fuse_mkdir_async"; static const char __pyx_k_fuse_mknod_async[] = "fuse_mknod_async"; static const char __pyx_k_fuse_rmdir_async[] = "fuse_rmdir_async"; static const char __pyx_k_fuse_write_async[] = "fuse_write_async"; static const char __pyx_k_invalidate_entry[] = "invalidate_entry"; static const char __pyx_k_invalidate_inode[] = "invalidate_inode"; static const char __pyx_k_src_handlers_pxi[] = "src/handlers.pxi"; static const char __pyx_k_src_internal_pxi[] = "src/internal.pxi"; static const char __pyx_k_unknown_flag_s_o[] = "unknown flag(s): %o"; static const char __pyx_k_FileNotFoundError[] = "FileNotFoundError"; static const char __pyx_k_Unable_to_parse_s[] = "Unable to parse %s"; static const char __pyx_k_fuse_access_async[] = "fuse_access_async"; static const char __pyx_k_fuse_create_async[] = "fuse_create_async"; static const char __pyx_k_fuse_lookup_async[] = "fuse_lookup_async"; static const char __pyx_k_fuse_rename_async[] = "fuse_rename_async"; static const char __pyx_k_fuse_statfs_async[] = "fuse_statfs_async"; static const char __pyx_k_fuse_unlink_async[] = "fuse_unlink_async"; static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_current_trio_token[] = "current_trio_token"; static const char __pyx_k_fuse_getattr_async[] = "fuse_getattr_async"; static const char __pyx_k_fuse_opendir_async[] = "fuse_opendir_async"; static const char __pyx_k_fuse_release_async[] = "fuse_release_async"; static const char __pyx_k_fuse_setattr_async[] = "fuse_setattr_async"; static const char __pyx_k_fuse_symlink_async[] = "fuse_symlink_async"; static const char __pyx_k_wait_fuse_readable[] = "_wait_fuse_readable"; static const char __pyx_k_ClosedResourceError[] = "ClosedResourceError"; static const char __pyx_k_default_permissions[] = "default_permissions"; static const char __pyx_k_fuse_fsyncdir_async[] = "fuse_fsyncdir_async"; static const char __pyx_k_fuse_getxattr_async[] = "fuse_getxattr_async"; static const char __pyx_k_fuse_readlink_async[] = "fuse_readlink_async"; static const char __pyx_k_fuse_setxattr_async[] = "fuse_setxattr_async"; static const char __pyx_k_supports_dot_lookup[] = "supports_dot_lookup"; static const char __pyx_k_Initializing_pyfuse3[] = "Initializing pyfuse3"; static const char __pyx_k_fuse_listxattr_async[] = "fuse_listxattr_async"; static const char __pyx_k_fuse_write_buf_async[] = "fuse_write_buf_async"; static const char __pyx_k_fuse_releasedir_async[] = "fuse_releasedir_async"; static const char __pyx_k_getfilesystemencoding[] = "getfilesystemencoding"; static const char __pyx_k_Starting_notify_worker[] = "Starting notify worker."; static const char __pyx_k_StatvfsData___getstate[] = "StatvfsData.__getstate__"; static const char __pyx_k_StatvfsData___setstate[] = "StatvfsData.__setstate__"; static const char __pyx_k_enable_writeback_cache[] = "enable_writeback_cache"; static const char __pyx_k_fuse_readdirplus_async[] = "fuse_readdirplus_async"; static const char __pyx_k_fuse_removexattr_async[] = "fuse_removexattr_async"; static const char __pyx_k_invalidate_entry_async[] = "invalidate_entry_async"; static const char __pyx_k_fuse_session_new_failed[] = "fuse_session_new() failed"; static const char __pyx_k_Calling_fuse_session_new[] = "Calling fuse_session_new"; static const char __pyx_k_FileInfo___reduce_cython[] = "FileInfo.__reduce_cython__"; static const char __pyx_k_SetattrFields___getstate[] = "SetattrFields.__getstate__"; static const char __pyx_k_pyx_unpickle__WorkerData[] = "__pyx_unpickle__WorkerData"; static const char __pyx_k_Container___reduce_cython[] = "_Container.__reduce_cython__"; static const char __pyx_k_FUSEError___reduce_cython[] = "FUSEError.__reduce_cython__"; static const char __pyx_k_RequestContext___getstate[] = "RequestContext.__getstate__"; static const char __pyx_k_fuse_buf_copy_failed_with[] = "fuse_buf_copy failed with "; static const char __pyx_k_fuse_session_mount_failed[] = "fuse_session_mount failed"; static const char __pyx_k_terminating_notify_thread[] = "terminating notify thread"; static const char __pyx_k_Calling_fuse_session_mount[] = "Calling fuse_session_mount"; static const char __pyx_k_EntryAttributes___getstate[] = "EntryAttributes.__getstate__"; static const char __pyx_k_EntryAttributes___setstate[] = "EntryAttributes.__setstate__"; static const char __pyx_k_FUSE_fd_about_to_be_closed[] = "FUSE fd about to be closed."; static const char __pyx_k_FileInfo___setstate_cython[] = "FileInfo.__setstate_cython__"; static const char __pyx_k_WorkerData___reduce_cython[] = "_WorkerData.__reduce_cython__"; static const char __pyx_k_Container___setstate_cython[] = "_Container.__setstate_cython__"; static const char __pyx_k_FUSEError___setstate_cython[] = "FUSEError.__setstate_cython__"; static const char __pyx_k_StatvfsData___reduce_cython[] = "StatvfsData.__reduce_cython__"; static const char __pyx_k_pyx_unpickle_RequestContext[] = "__pyx_unpickle_RequestContext"; static const char __pyx_k_Calling_fuse_session_destroy[] = "Calling fuse_session_destroy"; static const char __pyx_k_Calling_fuse_session_unmount[] = "Calling fuse_session_unmount"; static const char __pyx_k_ReaddirToken___reduce_cython[] = "ReaddirToken.__reduce_cython__"; static const char __pyx_k_WorkerData___setstate_cython[] = "_WorkerData.__setstate_cython__"; static const char __pyx_k_Need_to_call_init_before_main[] = "Need to call init() before main()"; static const char __pyx_k_SetattrFields___reduce_cython[] = "SetattrFields.__reduce_cython__"; static const char __pyx_k_StatvfsData___setstate_cython[] = "StatvfsData.__setstate_cython__"; static const char __pyx_k_ReaddirToken___setstate_cython[] = "ReaddirToken.__setstate_cython__"; static const char __pyx_k_RequestContext___reduce_cython[] = "RequestContext.__reduce_cython__"; static const char __pyx_k_EntryAttributes___reduce_cython[] = "EntryAttributes.__reduce_cython__"; static const char __pyx_k_Kernel_too_old_pyfuse3_requires[] = "Kernel too old, pyfuse3 requires kernel 3.9 or newer!"; static const char __pyx_k_SetattrFields___setstate_cython[] = "SetattrFields.__setstate_cython__"; static const char __pyx_k_fuse_getattr_fuse_reply__failed[] = "fuse_getattr(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_opendir_fuse_reply__failed[] = "fuse_opendir(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_release_fuse_reply__failed[] = "fuse_release(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_session_receive_buf_failed[] = "fuse_session_receive_buf failed with "; static const char __pyx_k_fuse_setattr_fuse_reply__failed[] = "fuse_setattr(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_symlink_fuse_reply__failed[] = "fuse_symlink(): fuse_reply_* failed with %s"; static const char __pyx_k_mountpoint__argument_must_be_of[] = "*mountpoint_* argument must be of type str"; static const char __pyx_k_name_argument_must_be_of_type_s[] = "*name* argument must be of type str"; static const char __pyx_k_namespace_parameter_must_be_sys[] = "*namespace* parameter must be \"system\" or \"user\", not %s"; static const char __pyx_k_path_argument_must_be_of_type_s[] = "*path* argument must be of type str"; static const char __pyx_k_pyfuse3_pyx_Copyright_2013_Niko[] = "\npyfuse3.pyx\n\nCopyright \302\251 2013 Nikolaus Rath \n\nThis file is part of pyfuse3. This work may be distributed under\nthe terms of the GNU LGPL.\n"; static const char __pyx_k_s_No_tasks_waiting_starting_ano[] = "%s: No tasks waiting, starting another worker (now %d total)."; static const char __pyx_k_s_too_many_idle_tasks_d_total_d[] = "%s: too many idle tasks (%d total, %d waiting), terminating."; static const char __pyx_k_self_req_cannot_be_converted_to[] = "self.req cannot be converted to a Python object for pickling"; static const char __pyx_k_EntryAttributes___setstate_cytho[] = "EntryAttributes.__setstate_cython__"; static const char __pyx_k_FUSE_session_exit_flag_set_while[] = "FUSE session exit flag set while waiting for FUSE fd to become readable."; static const char __pyx_k_Failed_to_submit_invalidate_entr[] = "Failed to submit invalidate_entry request for parent inode %d, name %s"; static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))"; static const char __pyx_k_RequestContext___setstate_cython[] = "RequestContext.__setstate_cython__"; static const char __pyx_k_RequestContext_instances_can_t_b[] = "RequestContext instances can't be pickled"; static const char __pyx_k_SetattrFields_instances_can_t_be[] = "SetattrFields instances can't be pickled"; static const char __pyx_k_Value_too_long_to_convert_to_Pyt[] = "Value too long to convert to Python"; static const char __pyx_k_fuse_access_fuse_reply__failed_w[] = "fuse_access(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_create_fuse_reply__failed_w[] = "fuse_create(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_flush_fuse_reply__failed_wi[] = "fuse_flush(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_fsync_fuse_reply__failed_wi[] = "fuse_fsync(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_fsyncdir_fuse_reply__failed[] = "fuse_fsyncdir(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_getxattr_fuse_reply__failed[] = "fuse_getxattr(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_link_fuse_reply__failed_wit[] = "fuse_link(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_listxattr_fuse_reply__faile[] = "fuse_listxattr(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_lookup_fuse_reply__failed_w[] = "fuse_lookup(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_lowlevel_notify_delete_retu[] = "fuse_lowlevel_notify_delete returned: "; static const char __pyx_k_fuse_lowlevel_notify_inval_entry[] = "fuse_lowlevel_notify_inval_entry returned: "; static const char __pyx_k_fuse_lowlevel_notify_inval_inode[] = "fuse_lowlevel_notify_inval_inode returned: "; static const char __pyx_k_fuse_lowlevel_notify_store_retur[] = "fuse_lowlevel_notify_store returned: "; static const char __pyx_k_fuse_mkdir_fuse_reply__failed_wi[] = "fuse_mkdir(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_mknod_fuse_reply__failed_wi[] = "fuse_mknod(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_read_fuse_reply__failed_wit[] = "fuse_read(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_readdirplus_fuse_reply__fai[] = "fuse_readdirplus(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_readlink_fuse_reply__failed[] = "fuse_readlink(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_releasedir_fuse_reply__fail[] = "fuse_releasedir(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_removexattr_fuse_reply__fai[] = "fuse_removexattr(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_rename_fuse_reply__failed_w[] = "fuse_rename(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_rmdir_fuse_reply__failed_wi[] = "fuse_rmdir(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_setattr_clock_gettime_CLOCK[] = "fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s"; static const char __pyx_k_fuse_setxattr_fuse_reply__failed[] = "fuse_setxattr(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_statfs_fuse_reply__failed_w[] = "fuse_statfs(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_unlink_fuse_reply__failed_w[] = "fuse_unlink(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_write_buf_fuse_reply__faile[] = "fuse_write_buf(): fuse_reply_* failed with %s"; static const char __pyx_k_fuse_write_fuse_reply__failed_wi[] = "fuse_write(): fuse_reply_* failed with %s"; static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; static const char __pyx_k_py_retval_was_not_awaited_please[] = "py_retval was not awaited - please report a bug at https://github.com/libfuse/pyfuse3/issues!"; static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_2[] = "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))"; /* #### Code section: decls ### */ static PyObject *__pyx_pf_7pyfuse3_10_Container___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_10_Container_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_fuse_lookup_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_3fuse_getattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_6fuse_setattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_fh); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9fuse_readlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_12fuse_mknod_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15fuse_mkdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_18fuse_unlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_21fuse_rmdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_24fuse_symlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_link); /* proto */ static PyObject *__pyx_pf_7pyfuse3_27fuse_rename_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_newname); /* proto */ static PyObject *__pyx_pf_7pyfuse3_30fuse_link_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_newname); /* proto */ static PyObject *__pyx_pf_7pyfuse3_33fuse_open_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_36fuse_read_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_39fuse_write_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_pbuf); /* proto */ static PyObject *__pyx_pf_7pyfuse3_42fuse_write_buf_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_buf); /* proto */ static PyObject *__pyx_pf_7pyfuse3_45fuse_flush_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_48fuse_release_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_51fuse_fsync_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_54fuse_opendir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_57fuse_readdirplus_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_60fuse_releasedir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_63fuse_fsyncdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_66fuse_statfs_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_69fuse_setxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_72fuse_getxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_75fuse_listxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_78fuse_removexattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_81fuse_access_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_84fuse_create_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_87_notify_loop(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static int __pyx_pf_7pyfuse3_11_WorkerData___init__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_2__reduce_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_4__setstate_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_89_wait_fuse_readable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_92_session_loop(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_nursery, int __pyx_v_min_tasks, int __pyx_v_max_tasks); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext___getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3uid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3pid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3gid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_5umask___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_2__reduce_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_4__setstate_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_13SetattrFields___cinit__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_2__getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_atime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_mtime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_ctime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_mode___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_uid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_gid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_size___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes___cinit__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_ino___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10generation___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_10generation_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_mode___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_uid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_gid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_size___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_size_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_2__getstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_4__setstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo___cinit__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_fh, PyObject *__pyx_v_direct_io, PyObject *__pyx_v_keep_cache, PyObject *__pyx_v_nonseekable); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2fh___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_2fh_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_9direct_io___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_9direct_io_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_10keep_cache___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_10keep_cache_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_11nonseekable___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_11nonseekable_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData___cinit__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_frsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_blocks___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bfree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_bavail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_files___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_files_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_ffree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_favail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_favail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_9f_namemax___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_2__getstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_4__setstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_5errno___get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_9FUSEError___cinit__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, PyObject *__pyx_v_errno); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_2__str__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6errno____get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_95listdir(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */ static PyObject *__pyx_pf_7pyfuse3_97syncfs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */ static PyObject *__pyx_pf_7pyfuse3_99setxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_namespace); /* proto */ static PyObject *__pyx_pf_7pyfuse3_101getxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, size_t __pyx_v_size_guess, PyObject *__pyx_v_namespace); /* proto */ static PyObject *__pyx_pf_7pyfuse3_128__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_103init(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ops, PyObject *__pyx_v_mountpoint, PyObject *__pyx_v_options); /* proto */ static PyObject *__pyx_pf_7pyfuse3_105main(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_min_tasks, int __pyx_v_max_tasks); /* proto */ static PyObject *__pyx_pf_7pyfuse3_108terminate(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_110close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_unmount); /* proto */ static PyObject *__pyx_pf_7pyfuse3_112invalidate_inode(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode, PyObject *__pyx_v_attr_only); /* proto */ static PyObject *__pyx_pf_7pyfuse3_114invalidate_entry(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode_p, PyObject *__pyx_v_name, fuse_ino_t __pyx_v_deleted); /* proto */ static PyObject *__pyx_pf_7pyfuse3_116invalidate_entry_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode_p, PyObject *__pyx_v_name, PyObject *__pyx_v_deleted, PyObject *__pyx_v_ignore_enoent); /* proto */ static PyObject *__pyx_pf_7pyfuse3_118notify_store(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode, PyObject *__pyx_v_offset, PyObject *__pyx_v_data); /* proto */ static PyObject *__pyx_pf_7pyfuse3_120get_sup_groups(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pid); /* proto */ static PyObject *__pyx_pf_7pyfuse3_122readdir_reply(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token, PyObject *__pyx_v_name, struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_attr, off_t __pyx_v_next_id); /* proto */ static PyObject *__pyx_pf_7pyfuse3_124__pyx_unpickle__WorkerData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_126__pyx_unpickle_RequestContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_7pyfuse3__Container(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_ReaddirToken(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3__WorkerData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_RequestContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_SetattrFields(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_EntryAttributes(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_FileInfo(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_StatvfsData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_FUSEError(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_create_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__session_loop(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_31_main(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ typedef struct { PyObject *__pyx_d; PyObject *__pyx_b; PyObject *__pyx_cython_runtime; PyObject *__pyx_empty_tuple; PyObject *__pyx_empty_bytes; PyObject *__pyx_empty_unicode; #ifdef __Pyx_CyFunction_USED PyTypeObject *__pyx_CyFunctionType; #endif #ifdef __Pyx_FusedFunction_USED PyTypeObject *__pyx_FusedFunctionType; #endif #ifdef __Pyx_Generator_USED PyTypeObject *__pyx_GeneratorType; #endif #ifdef __Pyx_IterableCoroutine_USED PyTypeObject *__pyx_IterableCoroutineType; #endif #ifdef __Pyx_Coroutine_USED PyTypeObject *__pyx_CoroutineAwaitType; #endif #ifdef __Pyx_Coroutine_USED PyTypeObject *__pyx_CoroutineType; #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif PyTypeObject *__pyx_ptype_7cpython_4type_type; #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE PyObject *__pyx_type_7pyfuse3__Container; PyObject *__pyx_type_7pyfuse3_ReaddirToken; PyObject *__pyx_type_7pyfuse3__WorkerData; PyObject *__pyx_type_7pyfuse3_RequestContext; PyObject *__pyx_type_7pyfuse3_SetattrFields; PyObject *__pyx_type_7pyfuse3_EntryAttributes; PyObject *__pyx_type_7pyfuse3_FileInfo; PyObject *__pyx_type_7pyfuse3_StatvfsData; PyObject *__pyx_type_7pyfuse3_FUSEError; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_31_main; #endif PyTypeObject *__pyx_ptype_7pyfuse3__Container; PyTypeObject *__pyx_ptype_7pyfuse3_ReaddirToken; PyTypeObject *__pyx_ptype_7pyfuse3__WorkerData; PyTypeObject *__pyx_ptype_7pyfuse3_RequestContext; PyTypeObject *__pyx_ptype_7pyfuse3_SetattrFields; PyTypeObject *__pyx_ptype_7pyfuse3_EntryAttributes; PyTypeObject *__pyx_ptype_7pyfuse3_FileInfo; PyTypeObject *__pyx_ptype_7pyfuse3_StatvfsData; PyTypeObject *__pyx_ptype_7pyfuse3_FUSEError; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main; PyObject *__pyx_kp_u_Calling_fuse_session_destroy; PyObject *__pyx_kp_u_Calling_fuse_session_mount; PyObject *__pyx_kp_u_Calling_fuse_session_new; PyObject *__pyx_kp_u_Calling_fuse_session_unmount; PyObject *__pyx_n_s_ClosedResourceError; PyObject *__pyx_n_s_Container; PyObject *__pyx_n_s_Container___reduce_cython; PyObject *__pyx_n_s_Container___setstate_cython; PyObject *__pyx_n_u_ENOATTR; PyObject *__pyx_n_s_EntryAttributes; PyObject *__pyx_n_s_EntryAttributes___getstate; PyObject *__pyx_n_s_EntryAttributes___reduce_cython; PyObject *__pyx_n_s_EntryAttributes___setstate; PyObject *__pyx_n_s_EntryAttributes___setstate_cytho; PyObject *__pyx_n_s_FUSEError; PyObject *__pyx_n_s_FUSEError___reduce_cython; PyObject *__pyx_n_s_FUSEError___setstate_cython; PyObject *__pyx_kp_u_FUSE_fd_about_to_be_closed; PyObject *__pyx_kp_u_FUSE_session_exit_flag_set_while; PyObject *__pyx_kp_u_Failed_to_submit_invalidate_entr; PyObject *__pyx_n_s_FileHandleT; PyObject *__pyx_n_s_FileInfo; PyObject *__pyx_n_s_FileInfo___reduce_cython; PyObject *__pyx_n_s_FileInfo___setstate_cython; PyObject *__pyx_n_s_FileNameT; PyObject *__pyx_n_s_FileNotFoundError; PyObject *__pyx_n_s_FlagT; PyObject *__pyx_kp_u_Groups; PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0; PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2; PyObject *__pyx_kp_u_Initializing_pyfuse3; PyObject *__pyx_n_s_InodeT; PyObject *__pyx_kp_u_Kernel_too_old_pyfuse3_requires; PyObject *__pyx_n_s_Lock; PyObject *__pyx_n_s_MemoryError; PyObject *__pyx_n_s_ModeT; PyObject *__pyx_n_s_NANOS_PER_SEC; PyObject *__pyx_kp_u_Need_to_call_init_before_main; PyObject *__pyx_n_s_OSError; PyObject *__pyx_n_s_O_DIRECTORY; PyObject *__pyx_n_s_Operations; PyObject *__pyx_n_s_OverflowError; PyObject *__pyx_n_s_PickleError; PyObject *__pyx_n_s_PicklingError; PyObject *__pyx_n_s_Queue; PyObject *__pyx_n_u_RENAME_EXCHANGE; PyObject *__pyx_n_u_RENAME_NOREPLACE; PyObject *__pyx_n_s_ROOT_INODE; PyObject *__pyx_n_s_ReaddirToken; PyObject *__pyx_n_s_ReaddirToken___reduce_cython; PyObject *__pyx_n_s_ReaddirToken___setstate_cython; PyObject *__pyx_n_s_RequestContext; PyObject *__pyx_n_s_RequestContext___getstate; PyObject *__pyx_n_s_RequestContext___reduce_cython; PyObject *__pyx_n_s_RequestContext___setstate_cython; PyObject *__pyx_kp_u_RequestContext_instances_can_t_b; PyObject *__pyx_n_s_RuntimeError; PyObject *__pyx_n_s_SetattrFields; PyObject *__pyx_n_s_SetattrFields___getstate; PyObject *__pyx_n_s_SetattrFields___reduce_cython; PyObject *__pyx_n_s_SetattrFields___setstate_cython; PyObject *__pyx_kp_u_SetattrFields_instances_can_t_be; PyObject *__pyx_kp_u_Starting_notify_worker; PyObject *__pyx_n_s_StatvfsData; PyObject *__pyx_n_s_StatvfsData___getstate; PyObject *__pyx_n_s_StatvfsData___reduce_cython; PyObject *__pyx_n_s_StatvfsData___setstate; PyObject *__pyx_n_s_StatvfsData___setstate_cython; PyObject *__pyx_n_s_TYPE_CHECKING; PyObject *__pyx_n_s_Thread; PyObject *__pyx_n_s_TypeError; PyObject *__pyx_kp_u_Unable_to_parse_s; PyObject *__pyx_n_s_ValueError; PyObject *__pyx_kp_u_Value_too_long_to_convert_to_Pyt; PyObject *__pyx_n_s_WorkerData; PyObject *__pyx_n_s_WorkerData___reduce_cython; PyObject *__pyx_n_s_WorkerData___setstate_cython; PyObject *__pyx_kp_b__29; PyObject *__pyx_kp_u__47; PyObject *__pyx_n_s__49; PyObject *__pyx_n_s__50; PyObject *__pyx_n_s_abspath; PyObject *__pyx_n_s_access; PyObject *__pyx_n_s_aenter; PyObject *__pyx_n_s_aexit; PyObject *__pyx_n_s_allowed; PyObject *__pyx_n_s_args; PyObject *__pyx_n_s_async_wrapper; PyObject *__pyx_n_s_asyncio_coroutines; PyObject *__pyx_n_s_attr; PyObject *__pyx_n_s_attr_only; PyObject *__pyx_n_u_attr_timeout; PyObject *__pyx_n_s_await; PyObject *__pyx_n_s_buf; PyObject *__pyx_n_s_bufsize; PyObject *__pyx_n_s_bufvec; PyObject *__pyx_n_s_c; PyObject *__pyx_n_s_cbuf; PyObject *__pyx_n_s_cline_in_traceback; PyObject *__pyx_n_s_close; PyObject *__pyx_n_s_cname; PyObject *__pyx_n_s_cnamespace; PyObject *__pyx_n_s_cpath; PyObject *__pyx_n_s_create; PyObject *__pyx_n_s_ctx; PyObject *__pyx_n_s_current_task; PyObject *__pyx_n_s_current_trio_token; PyObject *__pyx_n_s_cvalue; PyObject *__pyx_n_s_daemon; PyObject *__pyx_n_s_data; PyObject *__pyx_n_s_debug; PyObject *__pyx_n_s_decode; PyObject *__pyx_n_s_default_options; PyObject *__pyx_n_u_default_permissions; PyObject *__pyx_n_s_deleted; PyObject *__pyx_n_s_dict; PyObject *__pyx_n_s_dict_2; PyObject *__pyx_n_s_direct_io; PyObject *__pyx_n_s_dirp; PyObject *__pyx_kp_u_disable; PyObject *__pyx_n_s_e; PyObject *__pyx_kp_u_enable; PyObject *__pyx_n_s_enable_acl; PyObject *__pyx_n_s_enable_writeback_cache; PyObject *__pyx_n_s_encode; PyObject *__pyx_n_s_enter; PyObject *__pyx_n_s_entry; PyObject *__pyx_n_u_entry_timeout; PyObject *__pyx_n_s_enumerate; PyObject *__pyx_n_s_errno; PyObject *__pyx_kp_u_errno_d; PyObject *__pyx_n_s_error; PyObject *__pyx_n_s_exc; PyObject *__pyx_n_s_exception; PyObject *__pyx_n_s_exit; PyObject *__pyx_n_s_f_args; PyObject *__pyx_n_u_f_bavail; PyObject *__pyx_n_u_f_bfree; PyObject *__pyx_n_u_f_blocks; PyObject *__pyx_n_u_f_bsize; PyObject *__pyx_n_u_f_favail; PyObject *__pyx_n_u_f_ffree; PyObject *__pyx_n_u_f_files; PyObject *__pyx_n_u_f_frsize; PyObject *__pyx_n_u_f_namemax; PyObject *__pyx_n_s_fd; PyObject *__pyx_n_s_fh; PyObject *__pyx_n_s_fi; PyObject *__pyx_n_s_fields; PyObject *__pyx_n_s_flags; PyObject *__pyx_n_s_flush; PyObject *__pyx_n_s_forget; PyObject *__pyx_n_s_fse; PyObject *__pyx_n_s_fsync; PyObject *__pyx_n_s_fsyncdir; PyObject *__pyx_n_s_fuse_access_async; PyObject *__pyx_kp_u_fuse_access_fuse_reply__failed_w; PyObject *__pyx_kp_u_fuse_buf_copy_failed_with; PyObject *__pyx_n_s_fuse_create_async; PyObject *__pyx_kp_u_fuse_create_fuse_reply__failed_w; PyObject *__pyx_n_s_fuse_flush_async; PyObject *__pyx_kp_u_fuse_flush_fuse_reply__failed_wi; PyObject *__pyx_n_s_fuse_fsync_async; PyObject *__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi; PyObject *__pyx_n_s_fuse_fsyncdir_async; PyObject *__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed; PyObject *__pyx_n_s_fuse_getattr_async; PyObject *__pyx_kp_u_fuse_getattr_fuse_reply__failed; PyObject *__pyx_n_s_fuse_getxattr_async; PyObject *__pyx_kp_u_fuse_getxattr_fuse_reply__failed; PyObject *__pyx_n_s_fuse_link_async; PyObject *__pyx_kp_u_fuse_link_fuse_reply__failed_wit; PyObject *__pyx_n_s_fuse_listxattr_async; PyObject *__pyx_kp_u_fuse_listxattr_fuse_reply__faile; PyObject *__pyx_n_s_fuse_lookup_async; PyObject *__pyx_kp_u_fuse_lookup_fuse_reply__failed_w; PyObject *__pyx_kp_u_fuse_lowlevel_notify_delete_retu; PyObject *__pyx_kp_u_fuse_lowlevel_notify_inval_entry; PyObject *__pyx_kp_u_fuse_lowlevel_notify_inval_inode; PyObject *__pyx_kp_u_fuse_lowlevel_notify_store_retur; PyObject *__pyx_n_s_fuse_mkdir_async; PyObject *__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi; PyObject *__pyx_n_s_fuse_mknod_async; PyObject *__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi; PyObject *__pyx_n_s_fuse_open_async; PyObject *__pyx_n_s_fuse_opendir_async; PyObject *__pyx_kp_u_fuse_opendir_fuse_reply__failed; PyObject *__pyx_n_s_fuse_read_async; PyObject *__pyx_kp_u_fuse_read_fuse_reply__failed_wit; PyObject *__pyx_n_s_fuse_readdirplus_async; PyObject *__pyx_kp_u_fuse_readdirplus_fuse_reply__fai; PyObject *__pyx_n_s_fuse_readlink_async; PyObject *__pyx_kp_u_fuse_readlink_fuse_reply__failed; PyObject *__pyx_n_s_fuse_release_async; PyObject *__pyx_kp_u_fuse_release_fuse_reply__failed; PyObject *__pyx_n_s_fuse_releasedir_async; PyObject *__pyx_kp_u_fuse_releasedir_fuse_reply__fail; PyObject *__pyx_n_s_fuse_removexattr_async; PyObject *__pyx_kp_u_fuse_removexattr_fuse_reply__fai; PyObject *__pyx_n_s_fuse_rename_async; PyObject *__pyx_kp_u_fuse_rename_fuse_reply__failed_w; PyObject *__pyx_n_s_fuse_rmdir_async; PyObject *__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi; PyObject *__pyx_kp_u_fuse_session_mount_failed; PyObject *__pyx_kp_u_fuse_session_new_failed; PyObject *__pyx_kp_u_fuse_session_receive_buf_failed; PyObject *__pyx_n_s_fuse_setattr_async; PyObject *__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK; PyObject *__pyx_kp_u_fuse_setattr_fuse_reply__failed; PyObject *__pyx_n_s_fuse_setxattr_async; PyObject *__pyx_kp_u_fuse_setxattr_fuse_reply__failed; PyObject *__pyx_n_u_fuse_stacktrace; PyObject *__pyx_n_s_fuse_statfs_async; PyObject *__pyx_kp_u_fuse_statfs_fuse_reply__failed_w; PyObject *__pyx_n_s_fuse_symlink_async; PyObject *__pyx_kp_u_fuse_symlink_fuse_reply__failed; PyObject *__pyx_n_s_fuse_unlink_async; PyObject *__pyx_kp_u_fuse_unlink_fuse_reply__failed_w; PyObject *__pyx_n_s_fuse_write_async; PyObject *__pyx_n_s_fuse_write_buf_async; PyObject *__pyx_kp_u_fuse_write_buf_fuse_reply__faile; PyObject *__pyx_kp_u_fuse_write_fuse_reply__failed_wi; PyObject *__pyx_n_s_g; PyObject *__pyx_kp_u_gc; PyObject *__pyx_n_u_generation; PyObject *__pyx_n_s_get; PyObject *__pyx_n_s_getLogger; PyObject *__pyx_n_s_get_sup_groups; PyObject *__pyx_n_s_getattr; PyObject *__pyx_n_s_getfilesystemencoding; PyObject *__pyx_n_s_getstate; PyObject *__pyx_n_s_getxattr; PyObject *__pyx_n_s_gids; PyObject *__pyx_n_s_ignore_enoent; PyObject *__pyx_n_s_import; PyObject *__pyx_n_s_init; PyObject *__pyx_n_s_initializing; PyObject *__pyx_n_s_ino; PyObject *__pyx_n_s_inode; PyObject *__pyx_n_s_inode_p; PyObject *__pyx_n_s_invalidate_entry; PyObject *__pyx_n_s_invalidate_entry_async; PyObject *__pyx_n_s_invalidate_inode; PyObject *__pyx_n_s_is_coroutine; PyObject *__pyx_kp_u_isenabled; PyObject *__pyx_n_s_items; PyObject *__pyx_n_s_join; PyObject *__pyx_n_s_k; PyObject *__pyx_n_s_keep_cache; PyObject *__pyx_n_s_len; PyObject *__pyx_n_s_len_s; PyObject *__pyx_n_s_line; PyObject *__pyx_n_s_link; PyObject *__pyx_n_s_listdir; PyObject *__pyx_n_s_listxattr; PyObject *__pyx_n_s_log; PyObject *__pyx_n_s_logging; PyObject *__pyx_n_s_lookup; PyObject *__pyx_n_s_lowlevel; PyObject *__pyx_n_s_main; PyObject *__pyx_n_s_main_2; PyObject *__pyx_n_s_mask; PyObject *__pyx_n_s_max_tasks; PyObject *__pyx_n_s_min_tasks; PyObject *__pyx_n_s_mkdir; PyObject *__pyx_n_s_mknod; PyObject *__pyx_n_s_mountpoint; PyObject *__pyx_kp_u_mountpoint__argument_must_be_of; PyObject *__pyx_n_s_name; PyObject *__pyx_n_s_name_2; PyObject *__pyx_kp_u_name_argument_must_be_of_type_s; PyObject *__pyx_n_s_name_b; PyObject *__pyx_n_s_names; PyObject *__pyx_n_s_namespace; PyObject *__pyx_kp_u_namespace_parameter_must_be_sys; PyObject *__pyx_n_s_new; PyObject *__pyx_n_s_newname; PyObject *__pyx_n_s_newparent; PyObject *__pyx_n_s_next_id; PyObject *__pyx_kp_s_no_default___reduce___due_to_non; PyObject *__pyx_n_s_nonseekable; PyObject *__pyx_n_s_notify_closing; PyObject *__pyx_n_s_notify_loop; PyObject *__pyx_n_s_notify_store; PyObject *__pyx_n_s_now; PyObject *__pyx_n_s_nursery; PyObject *__pyx_kp_b_o; PyObject *__pyx_n_s_off; PyObject *__pyx_n_s_offset; PyObject *__pyx_n_s_open; PyObject *__pyx_n_s_open_nursery; PyObject *__pyx_n_s_opendir; PyObject *__pyx_n_s_ops; PyObject *__pyx_n_s_options; PyObject *__pyx_n_s_os; PyObject *__pyx_n_s_os_path; PyObject *__pyx_n_s_path; PyObject *__pyx_kp_u_path_argument_must_be_of_type_s; PyObject *__pyx_n_s_path_b; PyObject *__pyx_n_s_pbuf; PyObject *__pyx_n_s_pickle; PyObject *__pyx_n_s_pid; PyObject *__pyx_kp_u_proc_d_status; PyObject *__pyx_n_s_put; PyObject *__pyx_kp_u_py_retval_was_not_awaited_please; PyObject *__pyx_n_s_pybuf; PyObject *__pyx_n_b_pyfuse3; PyObject *__pyx_n_s_pyfuse3; PyObject *__pyx_n_u_pyfuse3; PyObject *__pyx_n_s_pyfuse3_2; PyObject *__pyx_kp_u_pyfuse_02d; PyObject *__pyx_n_s_pyx_PickleError; PyObject *__pyx_n_s_pyx_checksum; PyObject *__pyx_n_s_pyx_result; PyObject *__pyx_n_s_pyx_state; PyObject *__pyx_n_s_pyx_type; PyObject *__pyx_n_s_pyx_unpickle_RequestContext; PyObject *__pyx_n_s_pyx_unpickle__WorkerData; PyObject *__pyx_n_s_pyx_vtable; PyObject *__pyx_n_s_queue; PyObject *__pyx_n_u_r; PyObject *__pyx_n_s_range; PyObject *__pyx_n_s_read; PyObject *__pyx_n_s_readdir; PyObject *__pyx_n_s_readdir_reply; PyObject *__pyx_n_s_readlink; PyObject *__pyx_n_s_reduce; PyObject *__pyx_n_s_reduce_cython; PyObject *__pyx_n_s_reduce_ex; PyObject *__pyx_n_s_release; PyObject *__pyx_n_s_releasedir; PyObject *__pyx_n_s_removexattr; PyObject *__pyx_n_s_rename; PyObject *__pyx_n_s_req; PyObject *__pyx_n_s_res; PyObject *__pyx_n_s_ret; PyObject *__pyx_n_s_rmdir; PyObject *__pyx_kp_u_s_No_tasks_waiting_starting_ano; PyObject *__pyx_kp_u_s_terminated; PyObject *__pyx_kp_u_s_too_many_idle_tasks_d_total_d; PyObject *__pyx_n_s_self; PyObject *__pyx_kp_s_self_req_cannot_be_converted_to; PyObject *__pyx_n_s_send; PyObject *__pyx_n_s_session_loop; PyObject *__pyx_n_s_setattr; PyObject *__pyx_n_s_setstate; PyObject *__pyx_n_s_setstate_cython; PyObject *__pyx_n_s_setxattr; PyObject *__pyx_n_s_size_guess; PyObject *__pyx_n_s_slen; PyObject *__pyx_n_s_spec; PyObject *__pyx_n_s_split; PyObject *__pyx_kp_s_src_handlers_pxi; PyObject *__pyx_kp_s_src_internal_pxi; PyObject *__pyx_kp_s_src_pyfuse3_pyx; PyObject *__pyx_n_u_st_atime_ns; PyObject *__pyx_n_u_st_birthtime_ns; PyObject *__pyx_n_u_st_blksize; PyObject *__pyx_n_u_st_blocks; PyObject *__pyx_n_u_st_ctime_ns; PyObject *__pyx_n_u_st_gid; PyObject *__pyx_n_u_st_ino; PyObject *__pyx_n_u_st_mode; PyObject *__pyx_n_u_st_mtime_ns; PyObject *__pyx_n_u_st_nlink; PyObject *__pyx_n_u_st_rdev; PyObject *__pyx_n_u_st_size; PyObject *__pyx_n_u_st_uid; PyObject *__pyx_n_s_stacktrace; PyObject *__pyx_n_s_start; PyObject *__pyx_n_s_start_soon; PyObject *__pyx_n_s_startswith; PyObject *__pyx_n_s_state; PyObject *__pyx_n_s_statfs; PyObject *__pyx_n_s_stats; PyObject *__pyx_n_s_strerror; PyObject *__pyx_kp_s_stringsource; PyObject *__pyx_n_s_supports_dot_lookup; PyObject *__pyx_n_u_surrogateescape; PyObject *__pyx_n_s_symlink; PyObject *__pyx_n_s_syncfs; PyObject *__pyx_n_s_sys; PyObject *__pyx_n_u_system; PyObject *__pyx_n_s_t; PyObject *__pyx_n_s_target; PyObject *__pyx_n_s_terminate; PyObject *__pyx_kp_u_terminating_notify_thread; PyObject *__pyx_n_s_test; PyObject *__pyx_n_s_threading; PyObject *__pyx_n_s_throw; PyObject *__pyx_n_s_tmp; PyObject *__pyx_n_s_to_set; PyObject *__pyx_n_s_token; PyObject *__pyx_n_s_trio; PyObject *__pyx_n_s_trio_token; PyObject *__pyx_n_s_typing; PyObject *__pyx_kp_u_unknown_flag_s_o; PyObject *__pyx_n_s_unlink; PyObject *__pyx_n_s_unmount; PyObject *__pyx_n_s_update; PyObject *__pyx_kp_u_us_ascii; PyObject *__pyx_n_s_use_setstate; PyObject *__pyx_n_u_user; PyObject *__pyx_n_s_v; PyObject *__pyx_n_s_value; PyObject *__pyx_n_s_version; PyObject *__pyx_n_s_wait_fuse_readable; PyObject *__pyx_n_s_wait_readable; PyObject *__pyx_n_s_write; PyObject *__pyx_n_s_x; PyObject *__pyx_int_0; PyObject *__pyx_int_1; PyObject *__pyx_int_35895208; PyObject *__pyx_int_44617694; PyObject *__pyx_int_144710093; PyObject *__pyx_int_154557683; PyObject *__pyx_int_240542287; PyObject *__pyx_int_244161614; PyObject *__pyx_int_1000000000; PyObject *__pyx_tuple_; PyObject *__pyx_slice__45; PyObject *__pyx_tuple__15; PyObject *__pyx_tuple__34; PyObject *__pyx_tuple__36; PyObject *__pyx_tuple__37; PyObject *__pyx_tuple__38; PyObject *__pyx_tuple__39; PyObject *__pyx_tuple__40; PyObject *__pyx_tuple__41; PyObject *__pyx_tuple__42; PyObject *__pyx_tuple__44; PyObject *__pyx_tuple__46; PyObject *__pyx_tuple__48; PyObject *__pyx_tuple__51; PyObject *__pyx_tuple__52; PyObject *__pyx_tuple__53; PyObject *__pyx_tuple__55; PyObject *__pyx_tuple__57; PyObject *__pyx_tuple__58; PyObject *__pyx_tuple__59; PyObject *__pyx_tuple__60; PyObject *__pyx_tuple__61; PyObject *__pyx_tuple__62; PyObject *__pyx_tuple__63; PyObject *__pyx_tuple__64; PyObject *__pyx_tuple__65; PyObject *__pyx_tuple__66; PyObject *__pyx_tuple__67; PyObject *__pyx_tuple__68; PyObject *__pyx_tuple__69; PyObject *__pyx_tuple__70; PyObject *__pyx_tuple__71; PyObject *__pyx_tuple__74; PyObject *__pyx_tuple__75; PyObject *__pyx_tuple__76; PyObject *__pyx_tuple__77; PyObject *__pyx_tuple__78; PyObject *__pyx_tuple__79; PyObject *__pyx_tuple__80; PyObject *__pyx_tuple__81; PyObject *__pyx_tuple__83; PyObject *__pyx_tuple__86; PyObject *__pyx_tuple__93; PyObject *__pyx_tuple__95; PyObject *__pyx_codeobj__2; PyObject *__pyx_codeobj__3; PyObject *__pyx_codeobj__4; PyObject *__pyx_codeobj__5; PyObject *__pyx_codeobj__6; PyObject *__pyx_codeobj__7; PyObject *__pyx_codeobj__8; PyObject *__pyx_codeobj__9; PyObject *__pyx_tuple__107; PyObject *__pyx_tuple__109; PyObject *__pyx_tuple__111; PyObject *__pyx_tuple__113; PyObject *__pyx_tuple__114; PyObject *__pyx_tuple__116; PyObject *__pyx_tuple__117; PyObject *__pyx_tuple__119; PyObject *__pyx_tuple__121; PyObject *__pyx_tuple__123; PyObject *__pyx_tuple__124; PyObject *__pyx_tuple__126; PyObject *__pyx_tuple__127; PyObject *__pyx_tuple__129; PyObject *__pyx_tuple__131; PyObject *__pyx_tuple__132; PyObject *__pyx_tuple__134; PyObject *__pyx_tuple__136; PyObject *__pyx_tuple__138; PyObject *__pyx_codeobj__10; PyObject *__pyx_codeobj__11; PyObject *__pyx_codeobj__12; PyObject *__pyx_codeobj__13; PyObject *__pyx_codeobj__14; PyObject *__pyx_codeobj__16; PyObject *__pyx_codeobj__17; PyObject *__pyx_codeobj__18; PyObject *__pyx_codeobj__19; PyObject *__pyx_codeobj__20; PyObject *__pyx_codeobj__21; PyObject *__pyx_codeobj__22; PyObject *__pyx_codeobj__23; PyObject *__pyx_codeobj__24; PyObject *__pyx_codeobj__25; PyObject *__pyx_codeobj__26; PyObject *__pyx_codeobj__27; PyObject *__pyx_codeobj__28; PyObject *__pyx_codeobj__30; PyObject *__pyx_codeobj__31; PyObject *__pyx_codeobj__32; PyObject *__pyx_codeobj__33; PyObject *__pyx_codeobj__35; PyObject *__pyx_codeobj__43; PyObject *__pyx_codeobj__54; PyObject *__pyx_codeobj__56; PyObject *__pyx_codeobj__72; PyObject *__pyx_codeobj__73; PyObject *__pyx_codeobj__82; PyObject *__pyx_codeobj__84; PyObject *__pyx_codeobj__85; PyObject *__pyx_codeobj__87; PyObject *__pyx_codeobj__88; PyObject *__pyx_codeobj__89; PyObject *__pyx_codeobj__90; PyObject *__pyx_codeobj__91; PyObject *__pyx_codeobj__92; PyObject *__pyx_codeobj__94; PyObject *__pyx_codeobj__96; PyObject *__pyx_codeobj__97; PyObject *__pyx_codeobj__98; PyObject *__pyx_codeobj__99; PyObject *__pyx_codeobj__100; PyObject *__pyx_codeobj__101; PyObject *__pyx_codeobj__102; PyObject *__pyx_codeobj__103; PyObject *__pyx_codeobj__104; PyObject *__pyx_codeobj__105; PyObject *__pyx_codeobj__106; PyObject *__pyx_codeobj__108; PyObject *__pyx_codeobj__110; PyObject *__pyx_codeobj__112; PyObject *__pyx_codeobj__115; PyObject *__pyx_codeobj__118; PyObject *__pyx_codeobj__120; PyObject *__pyx_codeobj__122; PyObject *__pyx_codeobj__125; PyObject *__pyx_codeobj__128; PyObject *__pyx_codeobj__130; PyObject *__pyx_codeobj__133; PyObject *__pyx_codeobj__135; PyObject *__pyx_codeobj__137; PyObject *__pyx_codeobj__139; PyObject *__pyx_codeobj__140; } __pyx_mstate; #if CYTHON_USE_MODULE_STATE #ifdef __cplusplus namespace { extern struct PyModuleDef __pyx_moduledef; } /* anonymous namespace */ #else static struct PyModuleDef __pyx_moduledef; #endif #define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o)) #define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef))) #define __pyx_m (PyState_FindModule(&__pyx_moduledef)) #else static __pyx_mstate __pyx_mstate_global_static = #ifdef __cplusplus {}; #else {0}; #endif static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static; #endif /* #### Code section: module_state_clear ### */ #if CYTHON_USE_MODULE_STATE static int __pyx_m_clear(PyObject *m) { __pyx_mstate *clear_module_state = __pyx_mstate(m); if (!clear_module_state) return 0; Py_CLEAR(clear_module_state->__pyx_d); Py_CLEAR(clear_module_state->__pyx_b); Py_CLEAR(clear_module_state->__pyx_cython_runtime); Py_CLEAR(clear_module_state->__pyx_empty_tuple); Py_CLEAR(clear_module_state->__pyx_empty_bytes); Py_CLEAR(clear_module_state->__pyx_empty_unicode); #ifdef __Pyx_CyFunction_USED Py_CLEAR(clear_module_state->__pyx_CyFunctionType); #endif #ifdef __Pyx_FusedFunction_USED Py_CLEAR(clear_module_state->__pyx_FusedFunctionType); #endif Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3__Container); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3__Container); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_ReaddirToken); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_ReaddirToken); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3__WorkerData); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3__WorkerData); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_RequestContext); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_RequestContext); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_SetattrFields); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_SetattrFields); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_EntryAttributes); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_EntryAttributes); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_FileInfo); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_FileInfo); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_StatvfsData); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_StatvfsData); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_FUSEError); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_FUSEError); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_31_main); Py_CLEAR(clear_module_state->__pyx_kp_u_Calling_fuse_session_destroy); Py_CLEAR(clear_module_state->__pyx_kp_u_Calling_fuse_session_mount); Py_CLEAR(clear_module_state->__pyx_kp_u_Calling_fuse_session_new); Py_CLEAR(clear_module_state->__pyx_kp_u_Calling_fuse_session_unmount); Py_CLEAR(clear_module_state->__pyx_n_s_ClosedResourceError); Py_CLEAR(clear_module_state->__pyx_n_s_Container); Py_CLEAR(clear_module_state->__pyx_n_s_Container___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_Container___setstate_cython); Py_CLEAR(clear_module_state->__pyx_n_u_ENOATTR); Py_CLEAR(clear_module_state->__pyx_n_s_EntryAttributes); Py_CLEAR(clear_module_state->__pyx_n_s_EntryAttributes___getstate); Py_CLEAR(clear_module_state->__pyx_n_s_EntryAttributes___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_EntryAttributes___setstate); Py_CLEAR(clear_module_state->__pyx_n_s_EntryAttributes___setstate_cytho); Py_CLEAR(clear_module_state->__pyx_n_s_FUSEError); Py_CLEAR(clear_module_state->__pyx_n_s_FUSEError___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_FUSEError___setstate_cython); Py_CLEAR(clear_module_state->__pyx_kp_u_FUSE_fd_about_to_be_closed); Py_CLEAR(clear_module_state->__pyx_kp_u_FUSE_session_exit_flag_set_while); Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_submit_invalidate_entr); Py_CLEAR(clear_module_state->__pyx_n_s_FileHandleT); Py_CLEAR(clear_module_state->__pyx_n_s_FileInfo); Py_CLEAR(clear_module_state->__pyx_n_s_FileInfo___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_FileInfo___setstate_cython); Py_CLEAR(clear_module_state->__pyx_n_s_FileNameT); Py_CLEAR(clear_module_state->__pyx_n_s_FileNotFoundError); Py_CLEAR(clear_module_state->__pyx_n_s_FlagT); Py_CLEAR(clear_module_state->__pyx_kp_u_Groups); Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0); Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2); Py_CLEAR(clear_module_state->__pyx_kp_u_Initializing_pyfuse3); Py_CLEAR(clear_module_state->__pyx_n_s_InodeT); Py_CLEAR(clear_module_state->__pyx_kp_u_Kernel_too_old_pyfuse3_requires); Py_CLEAR(clear_module_state->__pyx_n_s_Lock); Py_CLEAR(clear_module_state->__pyx_n_s_MemoryError); Py_CLEAR(clear_module_state->__pyx_n_s_ModeT); Py_CLEAR(clear_module_state->__pyx_n_s_NANOS_PER_SEC); Py_CLEAR(clear_module_state->__pyx_kp_u_Need_to_call_init_before_main); Py_CLEAR(clear_module_state->__pyx_n_s_OSError); Py_CLEAR(clear_module_state->__pyx_n_s_O_DIRECTORY); Py_CLEAR(clear_module_state->__pyx_n_s_Operations); Py_CLEAR(clear_module_state->__pyx_n_s_OverflowError); Py_CLEAR(clear_module_state->__pyx_n_s_PickleError); Py_CLEAR(clear_module_state->__pyx_n_s_PicklingError); Py_CLEAR(clear_module_state->__pyx_n_s_Queue); Py_CLEAR(clear_module_state->__pyx_n_u_RENAME_EXCHANGE); Py_CLEAR(clear_module_state->__pyx_n_u_RENAME_NOREPLACE); Py_CLEAR(clear_module_state->__pyx_n_s_ROOT_INODE); Py_CLEAR(clear_module_state->__pyx_n_s_ReaddirToken); Py_CLEAR(clear_module_state->__pyx_n_s_ReaddirToken___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_ReaddirToken___setstate_cython); Py_CLEAR(clear_module_state->__pyx_n_s_RequestContext); Py_CLEAR(clear_module_state->__pyx_n_s_RequestContext___getstate); Py_CLEAR(clear_module_state->__pyx_n_s_RequestContext___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_RequestContext___setstate_cython); Py_CLEAR(clear_module_state->__pyx_kp_u_RequestContext_instances_can_t_b); Py_CLEAR(clear_module_state->__pyx_n_s_RuntimeError); Py_CLEAR(clear_module_state->__pyx_n_s_SetattrFields); Py_CLEAR(clear_module_state->__pyx_n_s_SetattrFields___getstate); Py_CLEAR(clear_module_state->__pyx_n_s_SetattrFields___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_SetattrFields___setstate_cython); Py_CLEAR(clear_module_state->__pyx_kp_u_SetattrFields_instances_can_t_be); Py_CLEAR(clear_module_state->__pyx_kp_u_Starting_notify_worker); Py_CLEAR(clear_module_state->__pyx_n_s_StatvfsData); Py_CLEAR(clear_module_state->__pyx_n_s_StatvfsData___getstate); Py_CLEAR(clear_module_state->__pyx_n_s_StatvfsData___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_StatvfsData___setstate); Py_CLEAR(clear_module_state->__pyx_n_s_StatvfsData___setstate_cython); Py_CLEAR(clear_module_state->__pyx_n_s_TYPE_CHECKING); Py_CLEAR(clear_module_state->__pyx_n_s_Thread); Py_CLEAR(clear_module_state->__pyx_n_s_TypeError); Py_CLEAR(clear_module_state->__pyx_kp_u_Unable_to_parse_s); Py_CLEAR(clear_module_state->__pyx_n_s_ValueError); Py_CLEAR(clear_module_state->__pyx_kp_u_Value_too_long_to_convert_to_Pyt); Py_CLEAR(clear_module_state->__pyx_n_s_WorkerData); Py_CLEAR(clear_module_state->__pyx_n_s_WorkerData___reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_WorkerData___setstate_cython); Py_CLEAR(clear_module_state->__pyx_kp_b__29); Py_CLEAR(clear_module_state->__pyx_kp_u__47); Py_CLEAR(clear_module_state->__pyx_n_s__49); Py_CLEAR(clear_module_state->__pyx_n_s__50); Py_CLEAR(clear_module_state->__pyx_n_s_abspath); Py_CLEAR(clear_module_state->__pyx_n_s_access); Py_CLEAR(clear_module_state->__pyx_n_s_aenter); Py_CLEAR(clear_module_state->__pyx_n_s_aexit); Py_CLEAR(clear_module_state->__pyx_n_s_allowed); Py_CLEAR(clear_module_state->__pyx_n_s_args); Py_CLEAR(clear_module_state->__pyx_n_s_async_wrapper); Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines); Py_CLEAR(clear_module_state->__pyx_n_s_attr); Py_CLEAR(clear_module_state->__pyx_n_s_attr_only); Py_CLEAR(clear_module_state->__pyx_n_u_attr_timeout); Py_CLEAR(clear_module_state->__pyx_n_s_await); Py_CLEAR(clear_module_state->__pyx_n_s_buf); Py_CLEAR(clear_module_state->__pyx_n_s_bufsize); Py_CLEAR(clear_module_state->__pyx_n_s_bufvec); Py_CLEAR(clear_module_state->__pyx_n_s_c); Py_CLEAR(clear_module_state->__pyx_n_s_cbuf); Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback); Py_CLEAR(clear_module_state->__pyx_n_s_close); Py_CLEAR(clear_module_state->__pyx_n_s_cname); Py_CLEAR(clear_module_state->__pyx_n_s_cnamespace); Py_CLEAR(clear_module_state->__pyx_n_s_cpath); Py_CLEAR(clear_module_state->__pyx_n_s_create); Py_CLEAR(clear_module_state->__pyx_n_s_ctx); Py_CLEAR(clear_module_state->__pyx_n_s_current_task); Py_CLEAR(clear_module_state->__pyx_n_s_current_trio_token); Py_CLEAR(clear_module_state->__pyx_n_s_cvalue); Py_CLEAR(clear_module_state->__pyx_n_s_daemon); Py_CLEAR(clear_module_state->__pyx_n_s_data); Py_CLEAR(clear_module_state->__pyx_n_s_debug); Py_CLEAR(clear_module_state->__pyx_n_s_decode); Py_CLEAR(clear_module_state->__pyx_n_s_default_options); Py_CLEAR(clear_module_state->__pyx_n_u_default_permissions); Py_CLEAR(clear_module_state->__pyx_n_s_deleted); Py_CLEAR(clear_module_state->__pyx_n_s_dict); Py_CLEAR(clear_module_state->__pyx_n_s_dict_2); Py_CLEAR(clear_module_state->__pyx_n_s_direct_io); Py_CLEAR(clear_module_state->__pyx_n_s_dirp); Py_CLEAR(clear_module_state->__pyx_kp_u_disable); Py_CLEAR(clear_module_state->__pyx_n_s_e); Py_CLEAR(clear_module_state->__pyx_kp_u_enable); Py_CLEAR(clear_module_state->__pyx_n_s_enable_acl); Py_CLEAR(clear_module_state->__pyx_n_s_enable_writeback_cache); Py_CLEAR(clear_module_state->__pyx_n_s_encode); Py_CLEAR(clear_module_state->__pyx_n_s_enter); Py_CLEAR(clear_module_state->__pyx_n_s_entry); Py_CLEAR(clear_module_state->__pyx_n_u_entry_timeout); Py_CLEAR(clear_module_state->__pyx_n_s_enumerate); Py_CLEAR(clear_module_state->__pyx_n_s_errno); Py_CLEAR(clear_module_state->__pyx_kp_u_errno_d); Py_CLEAR(clear_module_state->__pyx_n_s_error); Py_CLEAR(clear_module_state->__pyx_n_s_exc); Py_CLEAR(clear_module_state->__pyx_n_s_exception); Py_CLEAR(clear_module_state->__pyx_n_s_exit); Py_CLEAR(clear_module_state->__pyx_n_s_f_args); Py_CLEAR(clear_module_state->__pyx_n_u_f_bavail); Py_CLEAR(clear_module_state->__pyx_n_u_f_bfree); Py_CLEAR(clear_module_state->__pyx_n_u_f_blocks); Py_CLEAR(clear_module_state->__pyx_n_u_f_bsize); Py_CLEAR(clear_module_state->__pyx_n_u_f_favail); Py_CLEAR(clear_module_state->__pyx_n_u_f_ffree); Py_CLEAR(clear_module_state->__pyx_n_u_f_files); Py_CLEAR(clear_module_state->__pyx_n_u_f_frsize); Py_CLEAR(clear_module_state->__pyx_n_u_f_namemax); Py_CLEAR(clear_module_state->__pyx_n_s_fd); Py_CLEAR(clear_module_state->__pyx_n_s_fh); Py_CLEAR(clear_module_state->__pyx_n_s_fi); Py_CLEAR(clear_module_state->__pyx_n_s_fields); Py_CLEAR(clear_module_state->__pyx_n_s_flags); Py_CLEAR(clear_module_state->__pyx_n_s_flush); Py_CLEAR(clear_module_state->__pyx_n_s_forget); Py_CLEAR(clear_module_state->__pyx_n_s_fse); Py_CLEAR(clear_module_state->__pyx_n_s_fsync); Py_CLEAR(clear_module_state->__pyx_n_s_fsyncdir); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_access_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_access_fuse_reply__failed_w); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_buf_copy_failed_with); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_create_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_create_fuse_reply__failed_w); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_flush_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_flush_fuse_reply__failed_wi); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_fsync_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_fsyncdir_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_getattr_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_getattr_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_getxattr_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_getxattr_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_link_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_link_fuse_reply__failed_wit); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_listxattr_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_listxattr_fuse_reply__faile); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_lookup_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_lookup_fuse_reply__failed_w); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_lowlevel_notify_delete_retu); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_lowlevel_notify_inval_entry); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_lowlevel_notify_inval_inode); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_lowlevel_notify_store_retur); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_mkdir_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_mknod_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_open_async); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_opendir_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_opendir_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_read_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_read_fuse_reply__failed_wit); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_readdirplus_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_readdirplus_fuse_reply__fai); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_readlink_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_readlink_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_release_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_release_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_releasedir_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_releasedir_fuse_reply__fail); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_removexattr_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_removexattr_fuse_reply__fai); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_rename_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_rename_fuse_reply__failed_w); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_rmdir_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_session_mount_failed); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_session_new_failed); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_session_receive_buf_failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_setattr_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_setattr_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_setxattr_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_setxattr_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_u_fuse_stacktrace); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_statfs_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_statfs_fuse_reply__failed_w); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_symlink_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_symlink_fuse_reply__failed); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_unlink_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_unlink_fuse_reply__failed_w); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_write_async); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_write_buf_async); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_write_buf_fuse_reply__faile); Py_CLEAR(clear_module_state->__pyx_kp_u_fuse_write_fuse_reply__failed_wi); Py_CLEAR(clear_module_state->__pyx_n_s_g); Py_CLEAR(clear_module_state->__pyx_kp_u_gc); Py_CLEAR(clear_module_state->__pyx_n_u_generation); Py_CLEAR(clear_module_state->__pyx_n_s_get); Py_CLEAR(clear_module_state->__pyx_n_s_getLogger); Py_CLEAR(clear_module_state->__pyx_n_s_get_sup_groups); Py_CLEAR(clear_module_state->__pyx_n_s_getattr); Py_CLEAR(clear_module_state->__pyx_n_s_getfilesystemencoding); Py_CLEAR(clear_module_state->__pyx_n_s_getstate); Py_CLEAR(clear_module_state->__pyx_n_s_getxattr); Py_CLEAR(clear_module_state->__pyx_n_s_gids); Py_CLEAR(clear_module_state->__pyx_n_s_ignore_enoent); Py_CLEAR(clear_module_state->__pyx_n_s_import); Py_CLEAR(clear_module_state->__pyx_n_s_init); Py_CLEAR(clear_module_state->__pyx_n_s_initializing); Py_CLEAR(clear_module_state->__pyx_n_s_ino); Py_CLEAR(clear_module_state->__pyx_n_s_inode); Py_CLEAR(clear_module_state->__pyx_n_s_inode_p); Py_CLEAR(clear_module_state->__pyx_n_s_invalidate_entry); Py_CLEAR(clear_module_state->__pyx_n_s_invalidate_entry_async); Py_CLEAR(clear_module_state->__pyx_n_s_invalidate_inode); Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine); Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled); Py_CLEAR(clear_module_state->__pyx_n_s_items); Py_CLEAR(clear_module_state->__pyx_n_s_join); Py_CLEAR(clear_module_state->__pyx_n_s_k); Py_CLEAR(clear_module_state->__pyx_n_s_keep_cache); Py_CLEAR(clear_module_state->__pyx_n_s_len); Py_CLEAR(clear_module_state->__pyx_n_s_len_s); Py_CLEAR(clear_module_state->__pyx_n_s_line); Py_CLEAR(clear_module_state->__pyx_n_s_link); Py_CLEAR(clear_module_state->__pyx_n_s_listdir); Py_CLEAR(clear_module_state->__pyx_n_s_listxattr); Py_CLEAR(clear_module_state->__pyx_n_s_log); Py_CLEAR(clear_module_state->__pyx_n_s_logging); Py_CLEAR(clear_module_state->__pyx_n_s_lookup); Py_CLEAR(clear_module_state->__pyx_n_s_lowlevel); Py_CLEAR(clear_module_state->__pyx_n_s_main); Py_CLEAR(clear_module_state->__pyx_n_s_main_2); Py_CLEAR(clear_module_state->__pyx_n_s_mask); Py_CLEAR(clear_module_state->__pyx_n_s_max_tasks); Py_CLEAR(clear_module_state->__pyx_n_s_min_tasks); Py_CLEAR(clear_module_state->__pyx_n_s_mkdir); Py_CLEAR(clear_module_state->__pyx_n_s_mknod); Py_CLEAR(clear_module_state->__pyx_n_s_mountpoint); Py_CLEAR(clear_module_state->__pyx_kp_u_mountpoint__argument_must_be_of); Py_CLEAR(clear_module_state->__pyx_n_s_name); Py_CLEAR(clear_module_state->__pyx_n_s_name_2); Py_CLEAR(clear_module_state->__pyx_kp_u_name_argument_must_be_of_type_s); Py_CLEAR(clear_module_state->__pyx_n_s_name_b); Py_CLEAR(clear_module_state->__pyx_n_s_names); Py_CLEAR(clear_module_state->__pyx_n_s_namespace); Py_CLEAR(clear_module_state->__pyx_kp_u_namespace_parameter_must_be_sys); Py_CLEAR(clear_module_state->__pyx_n_s_new); Py_CLEAR(clear_module_state->__pyx_n_s_newname); Py_CLEAR(clear_module_state->__pyx_n_s_newparent); Py_CLEAR(clear_module_state->__pyx_n_s_next_id); Py_CLEAR(clear_module_state->__pyx_kp_s_no_default___reduce___due_to_non); Py_CLEAR(clear_module_state->__pyx_n_s_nonseekable); Py_CLEAR(clear_module_state->__pyx_n_s_notify_closing); Py_CLEAR(clear_module_state->__pyx_n_s_notify_loop); Py_CLEAR(clear_module_state->__pyx_n_s_notify_store); Py_CLEAR(clear_module_state->__pyx_n_s_now); Py_CLEAR(clear_module_state->__pyx_n_s_nursery); Py_CLEAR(clear_module_state->__pyx_kp_b_o); Py_CLEAR(clear_module_state->__pyx_n_s_off); Py_CLEAR(clear_module_state->__pyx_n_s_offset); Py_CLEAR(clear_module_state->__pyx_n_s_open); Py_CLEAR(clear_module_state->__pyx_n_s_open_nursery); Py_CLEAR(clear_module_state->__pyx_n_s_opendir); Py_CLEAR(clear_module_state->__pyx_n_s_ops); Py_CLEAR(clear_module_state->__pyx_n_s_options); Py_CLEAR(clear_module_state->__pyx_n_s_os); Py_CLEAR(clear_module_state->__pyx_n_s_os_path); Py_CLEAR(clear_module_state->__pyx_n_s_path); Py_CLEAR(clear_module_state->__pyx_kp_u_path_argument_must_be_of_type_s); Py_CLEAR(clear_module_state->__pyx_n_s_path_b); Py_CLEAR(clear_module_state->__pyx_n_s_pbuf); Py_CLEAR(clear_module_state->__pyx_n_s_pickle); Py_CLEAR(clear_module_state->__pyx_n_s_pid); Py_CLEAR(clear_module_state->__pyx_kp_u_proc_d_status); Py_CLEAR(clear_module_state->__pyx_n_s_put); Py_CLEAR(clear_module_state->__pyx_kp_u_py_retval_was_not_awaited_please); Py_CLEAR(clear_module_state->__pyx_n_s_pybuf); Py_CLEAR(clear_module_state->__pyx_n_b_pyfuse3); Py_CLEAR(clear_module_state->__pyx_n_s_pyfuse3); Py_CLEAR(clear_module_state->__pyx_n_u_pyfuse3); Py_CLEAR(clear_module_state->__pyx_n_s_pyfuse3_2); Py_CLEAR(clear_module_state->__pyx_kp_u_pyfuse_02d); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_RequestContext); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle__WorkerData); Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable); Py_CLEAR(clear_module_state->__pyx_n_s_queue); Py_CLEAR(clear_module_state->__pyx_n_u_r); Py_CLEAR(clear_module_state->__pyx_n_s_range); Py_CLEAR(clear_module_state->__pyx_n_s_read); Py_CLEAR(clear_module_state->__pyx_n_s_readdir); Py_CLEAR(clear_module_state->__pyx_n_s_readdir_reply); Py_CLEAR(clear_module_state->__pyx_n_s_readlink); Py_CLEAR(clear_module_state->__pyx_n_s_reduce); Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython); Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex); Py_CLEAR(clear_module_state->__pyx_n_s_release); Py_CLEAR(clear_module_state->__pyx_n_s_releasedir); Py_CLEAR(clear_module_state->__pyx_n_s_removexattr); Py_CLEAR(clear_module_state->__pyx_n_s_rename); Py_CLEAR(clear_module_state->__pyx_n_s_req); Py_CLEAR(clear_module_state->__pyx_n_s_res); Py_CLEAR(clear_module_state->__pyx_n_s_ret); Py_CLEAR(clear_module_state->__pyx_n_s_rmdir); Py_CLEAR(clear_module_state->__pyx_kp_u_s_No_tasks_waiting_starting_ano); Py_CLEAR(clear_module_state->__pyx_kp_u_s_terminated); Py_CLEAR(clear_module_state->__pyx_kp_u_s_too_many_idle_tasks_d_total_d); Py_CLEAR(clear_module_state->__pyx_n_s_self); Py_CLEAR(clear_module_state->__pyx_kp_s_self_req_cannot_be_converted_to); Py_CLEAR(clear_module_state->__pyx_n_s_send); Py_CLEAR(clear_module_state->__pyx_n_s_session_loop); Py_CLEAR(clear_module_state->__pyx_n_s_setattr); Py_CLEAR(clear_module_state->__pyx_n_s_setstate); Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython); Py_CLEAR(clear_module_state->__pyx_n_s_setxattr); Py_CLEAR(clear_module_state->__pyx_n_s_size_guess); Py_CLEAR(clear_module_state->__pyx_n_s_slen); Py_CLEAR(clear_module_state->__pyx_n_s_spec); Py_CLEAR(clear_module_state->__pyx_n_s_split); Py_CLEAR(clear_module_state->__pyx_kp_s_src_handlers_pxi); Py_CLEAR(clear_module_state->__pyx_kp_s_src_internal_pxi); Py_CLEAR(clear_module_state->__pyx_kp_s_src_pyfuse3_pyx); Py_CLEAR(clear_module_state->__pyx_n_u_st_atime_ns); Py_CLEAR(clear_module_state->__pyx_n_u_st_birthtime_ns); Py_CLEAR(clear_module_state->__pyx_n_u_st_blksize); Py_CLEAR(clear_module_state->__pyx_n_u_st_blocks); Py_CLEAR(clear_module_state->__pyx_n_u_st_ctime_ns); Py_CLEAR(clear_module_state->__pyx_n_u_st_gid); Py_CLEAR(clear_module_state->__pyx_n_u_st_ino); Py_CLEAR(clear_module_state->__pyx_n_u_st_mode); Py_CLEAR(clear_module_state->__pyx_n_u_st_mtime_ns); Py_CLEAR(clear_module_state->__pyx_n_u_st_nlink); Py_CLEAR(clear_module_state->__pyx_n_u_st_rdev); Py_CLEAR(clear_module_state->__pyx_n_u_st_size); Py_CLEAR(clear_module_state->__pyx_n_u_st_uid); Py_CLEAR(clear_module_state->__pyx_n_s_stacktrace); Py_CLEAR(clear_module_state->__pyx_n_s_start); Py_CLEAR(clear_module_state->__pyx_n_s_start_soon); Py_CLEAR(clear_module_state->__pyx_n_s_startswith); Py_CLEAR(clear_module_state->__pyx_n_s_state); Py_CLEAR(clear_module_state->__pyx_n_s_statfs); Py_CLEAR(clear_module_state->__pyx_n_s_stats); Py_CLEAR(clear_module_state->__pyx_n_s_strerror); Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource); Py_CLEAR(clear_module_state->__pyx_n_s_supports_dot_lookup); Py_CLEAR(clear_module_state->__pyx_n_u_surrogateescape); Py_CLEAR(clear_module_state->__pyx_n_s_symlink); Py_CLEAR(clear_module_state->__pyx_n_s_syncfs); Py_CLEAR(clear_module_state->__pyx_n_s_sys); Py_CLEAR(clear_module_state->__pyx_n_u_system); Py_CLEAR(clear_module_state->__pyx_n_s_t); Py_CLEAR(clear_module_state->__pyx_n_s_target); Py_CLEAR(clear_module_state->__pyx_n_s_terminate); Py_CLEAR(clear_module_state->__pyx_kp_u_terminating_notify_thread); Py_CLEAR(clear_module_state->__pyx_n_s_test); Py_CLEAR(clear_module_state->__pyx_n_s_threading); Py_CLEAR(clear_module_state->__pyx_n_s_throw); Py_CLEAR(clear_module_state->__pyx_n_s_tmp); Py_CLEAR(clear_module_state->__pyx_n_s_to_set); Py_CLEAR(clear_module_state->__pyx_n_s_token); Py_CLEAR(clear_module_state->__pyx_n_s_trio); Py_CLEAR(clear_module_state->__pyx_n_s_trio_token); Py_CLEAR(clear_module_state->__pyx_n_s_typing); Py_CLEAR(clear_module_state->__pyx_kp_u_unknown_flag_s_o); Py_CLEAR(clear_module_state->__pyx_n_s_unlink); Py_CLEAR(clear_module_state->__pyx_n_s_unmount); Py_CLEAR(clear_module_state->__pyx_n_s_update); Py_CLEAR(clear_module_state->__pyx_kp_u_us_ascii); Py_CLEAR(clear_module_state->__pyx_n_s_use_setstate); Py_CLEAR(clear_module_state->__pyx_n_u_user); Py_CLEAR(clear_module_state->__pyx_n_s_v); Py_CLEAR(clear_module_state->__pyx_n_s_value); Py_CLEAR(clear_module_state->__pyx_n_s_version); Py_CLEAR(clear_module_state->__pyx_n_s_wait_fuse_readable); Py_CLEAR(clear_module_state->__pyx_n_s_wait_readable); Py_CLEAR(clear_module_state->__pyx_n_s_write); Py_CLEAR(clear_module_state->__pyx_n_s_x); Py_CLEAR(clear_module_state->__pyx_int_0); Py_CLEAR(clear_module_state->__pyx_int_1); Py_CLEAR(clear_module_state->__pyx_int_35895208); Py_CLEAR(clear_module_state->__pyx_int_44617694); Py_CLEAR(clear_module_state->__pyx_int_144710093); Py_CLEAR(clear_module_state->__pyx_int_154557683); Py_CLEAR(clear_module_state->__pyx_int_240542287); Py_CLEAR(clear_module_state->__pyx_int_244161614); Py_CLEAR(clear_module_state->__pyx_int_1000000000); Py_CLEAR(clear_module_state->__pyx_tuple_); Py_CLEAR(clear_module_state->__pyx_slice__45); Py_CLEAR(clear_module_state->__pyx_tuple__15); Py_CLEAR(clear_module_state->__pyx_tuple__34); Py_CLEAR(clear_module_state->__pyx_tuple__36); Py_CLEAR(clear_module_state->__pyx_tuple__37); Py_CLEAR(clear_module_state->__pyx_tuple__38); Py_CLEAR(clear_module_state->__pyx_tuple__39); Py_CLEAR(clear_module_state->__pyx_tuple__40); Py_CLEAR(clear_module_state->__pyx_tuple__41); Py_CLEAR(clear_module_state->__pyx_tuple__42); Py_CLEAR(clear_module_state->__pyx_tuple__44); Py_CLEAR(clear_module_state->__pyx_tuple__46); Py_CLEAR(clear_module_state->__pyx_tuple__48); Py_CLEAR(clear_module_state->__pyx_tuple__51); Py_CLEAR(clear_module_state->__pyx_tuple__52); Py_CLEAR(clear_module_state->__pyx_tuple__53); Py_CLEAR(clear_module_state->__pyx_tuple__55); Py_CLEAR(clear_module_state->__pyx_tuple__57); Py_CLEAR(clear_module_state->__pyx_tuple__58); Py_CLEAR(clear_module_state->__pyx_tuple__59); Py_CLEAR(clear_module_state->__pyx_tuple__60); Py_CLEAR(clear_module_state->__pyx_tuple__61); Py_CLEAR(clear_module_state->__pyx_tuple__62); Py_CLEAR(clear_module_state->__pyx_tuple__63); Py_CLEAR(clear_module_state->__pyx_tuple__64); Py_CLEAR(clear_module_state->__pyx_tuple__65); Py_CLEAR(clear_module_state->__pyx_tuple__66); Py_CLEAR(clear_module_state->__pyx_tuple__67); Py_CLEAR(clear_module_state->__pyx_tuple__68); Py_CLEAR(clear_module_state->__pyx_tuple__69); Py_CLEAR(clear_module_state->__pyx_tuple__70); Py_CLEAR(clear_module_state->__pyx_tuple__71); Py_CLEAR(clear_module_state->__pyx_tuple__74); Py_CLEAR(clear_module_state->__pyx_tuple__75); Py_CLEAR(clear_module_state->__pyx_tuple__76); Py_CLEAR(clear_module_state->__pyx_tuple__77); Py_CLEAR(clear_module_state->__pyx_tuple__78); Py_CLEAR(clear_module_state->__pyx_tuple__79); Py_CLEAR(clear_module_state->__pyx_tuple__80); Py_CLEAR(clear_module_state->__pyx_tuple__81); Py_CLEAR(clear_module_state->__pyx_tuple__83); Py_CLEAR(clear_module_state->__pyx_tuple__86); Py_CLEAR(clear_module_state->__pyx_tuple__93); Py_CLEAR(clear_module_state->__pyx_tuple__95); Py_CLEAR(clear_module_state->__pyx_codeobj__2); Py_CLEAR(clear_module_state->__pyx_codeobj__3); Py_CLEAR(clear_module_state->__pyx_codeobj__4); Py_CLEAR(clear_module_state->__pyx_codeobj__5); Py_CLEAR(clear_module_state->__pyx_codeobj__6); Py_CLEAR(clear_module_state->__pyx_codeobj__7); Py_CLEAR(clear_module_state->__pyx_codeobj__8); Py_CLEAR(clear_module_state->__pyx_codeobj__9); Py_CLEAR(clear_module_state->__pyx_tuple__107); Py_CLEAR(clear_module_state->__pyx_tuple__109); Py_CLEAR(clear_module_state->__pyx_tuple__111); Py_CLEAR(clear_module_state->__pyx_tuple__113); Py_CLEAR(clear_module_state->__pyx_tuple__114); Py_CLEAR(clear_module_state->__pyx_tuple__116); Py_CLEAR(clear_module_state->__pyx_tuple__117); Py_CLEAR(clear_module_state->__pyx_tuple__119); Py_CLEAR(clear_module_state->__pyx_tuple__121); Py_CLEAR(clear_module_state->__pyx_tuple__123); Py_CLEAR(clear_module_state->__pyx_tuple__124); Py_CLEAR(clear_module_state->__pyx_tuple__126); Py_CLEAR(clear_module_state->__pyx_tuple__127); Py_CLEAR(clear_module_state->__pyx_tuple__129); Py_CLEAR(clear_module_state->__pyx_tuple__131); Py_CLEAR(clear_module_state->__pyx_tuple__132); Py_CLEAR(clear_module_state->__pyx_tuple__134); Py_CLEAR(clear_module_state->__pyx_tuple__136); Py_CLEAR(clear_module_state->__pyx_tuple__138); Py_CLEAR(clear_module_state->__pyx_codeobj__10); Py_CLEAR(clear_module_state->__pyx_codeobj__11); Py_CLEAR(clear_module_state->__pyx_codeobj__12); Py_CLEAR(clear_module_state->__pyx_codeobj__13); Py_CLEAR(clear_module_state->__pyx_codeobj__14); Py_CLEAR(clear_module_state->__pyx_codeobj__16); Py_CLEAR(clear_module_state->__pyx_codeobj__17); Py_CLEAR(clear_module_state->__pyx_codeobj__18); Py_CLEAR(clear_module_state->__pyx_codeobj__19); Py_CLEAR(clear_module_state->__pyx_codeobj__20); Py_CLEAR(clear_module_state->__pyx_codeobj__21); Py_CLEAR(clear_module_state->__pyx_codeobj__22); Py_CLEAR(clear_module_state->__pyx_codeobj__23); Py_CLEAR(clear_module_state->__pyx_codeobj__24); Py_CLEAR(clear_module_state->__pyx_codeobj__25); Py_CLEAR(clear_module_state->__pyx_codeobj__26); Py_CLEAR(clear_module_state->__pyx_codeobj__27); Py_CLEAR(clear_module_state->__pyx_codeobj__28); Py_CLEAR(clear_module_state->__pyx_codeobj__30); Py_CLEAR(clear_module_state->__pyx_codeobj__31); Py_CLEAR(clear_module_state->__pyx_codeobj__32); Py_CLEAR(clear_module_state->__pyx_codeobj__33); Py_CLEAR(clear_module_state->__pyx_codeobj__35); Py_CLEAR(clear_module_state->__pyx_codeobj__43); Py_CLEAR(clear_module_state->__pyx_codeobj__54); Py_CLEAR(clear_module_state->__pyx_codeobj__56); Py_CLEAR(clear_module_state->__pyx_codeobj__72); Py_CLEAR(clear_module_state->__pyx_codeobj__73); Py_CLEAR(clear_module_state->__pyx_codeobj__82); Py_CLEAR(clear_module_state->__pyx_codeobj__84); Py_CLEAR(clear_module_state->__pyx_codeobj__85); Py_CLEAR(clear_module_state->__pyx_codeobj__87); Py_CLEAR(clear_module_state->__pyx_codeobj__88); Py_CLEAR(clear_module_state->__pyx_codeobj__89); Py_CLEAR(clear_module_state->__pyx_codeobj__90); Py_CLEAR(clear_module_state->__pyx_codeobj__91); Py_CLEAR(clear_module_state->__pyx_codeobj__92); Py_CLEAR(clear_module_state->__pyx_codeobj__94); Py_CLEAR(clear_module_state->__pyx_codeobj__96); Py_CLEAR(clear_module_state->__pyx_codeobj__97); Py_CLEAR(clear_module_state->__pyx_codeobj__98); Py_CLEAR(clear_module_state->__pyx_codeobj__99); Py_CLEAR(clear_module_state->__pyx_codeobj__100); Py_CLEAR(clear_module_state->__pyx_codeobj__101); Py_CLEAR(clear_module_state->__pyx_codeobj__102); Py_CLEAR(clear_module_state->__pyx_codeobj__103); Py_CLEAR(clear_module_state->__pyx_codeobj__104); Py_CLEAR(clear_module_state->__pyx_codeobj__105); Py_CLEAR(clear_module_state->__pyx_codeobj__106); Py_CLEAR(clear_module_state->__pyx_codeobj__108); Py_CLEAR(clear_module_state->__pyx_codeobj__110); Py_CLEAR(clear_module_state->__pyx_codeobj__112); Py_CLEAR(clear_module_state->__pyx_codeobj__115); Py_CLEAR(clear_module_state->__pyx_codeobj__118); Py_CLEAR(clear_module_state->__pyx_codeobj__120); Py_CLEAR(clear_module_state->__pyx_codeobj__122); Py_CLEAR(clear_module_state->__pyx_codeobj__125); Py_CLEAR(clear_module_state->__pyx_codeobj__128); Py_CLEAR(clear_module_state->__pyx_codeobj__130); Py_CLEAR(clear_module_state->__pyx_codeobj__133); Py_CLEAR(clear_module_state->__pyx_codeobj__135); Py_CLEAR(clear_module_state->__pyx_codeobj__137); Py_CLEAR(clear_module_state->__pyx_codeobj__139); Py_CLEAR(clear_module_state->__pyx_codeobj__140); return 0; } #endif /* #### Code section: module_state_traverse ### */ #if CYTHON_USE_MODULE_STATE static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { __pyx_mstate *traverse_module_state = __pyx_mstate(m); if (!traverse_module_state) return 0; Py_VISIT(traverse_module_state->__pyx_d); Py_VISIT(traverse_module_state->__pyx_b); Py_VISIT(traverse_module_state->__pyx_cython_runtime); Py_VISIT(traverse_module_state->__pyx_empty_tuple); Py_VISIT(traverse_module_state->__pyx_empty_bytes); Py_VISIT(traverse_module_state->__pyx_empty_unicode); #ifdef __Pyx_CyFunction_USED Py_VISIT(traverse_module_state->__pyx_CyFunctionType); #endif #ifdef __Pyx_FusedFunction_USED Py_VISIT(traverse_module_state->__pyx_FusedFunctionType); #endif Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3__Container); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3__Container); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_ReaddirToken); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_ReaddirToken); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3__WorkerData); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3__WorkerData); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_RequestContext); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_RequestContext); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_SetattrFields); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_SetattrFields); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_EntryAttributes); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_EntryAttributes); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_FileInfo); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_FileInfo); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_StatvfsData); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_StatvfsData); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_FUSEError); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_FUSEError); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_31_main); Py_VISIT(traverse_module_state->__pyx_kp_u_Calling_fuse_session_destroy); Py_VISIT(traverse_module_state->__pyx_kp_u_Calling_fuse_session_mount); Py_VISIT(traverse_module_state->__pyx_kp_u_Calling_fuse_session_new); Py_VISIT(traverse_module_state->__pyx_kp_u_Calling_fuse_session_unmount); Py_VISIT(traverse_module_state->__pyx_n_s_ClosedResourceError); Py_VISIT(traverse_module_state->__pyx_n_s_Container); Py_VISIT(traverse_module_state->__pyx_n_s_Container___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_Container___setstate_cython); Py_VISIT(traverse_module_state->__pyx_n_u_ENOATTR); Py_VISIT(traverse_module_state->__pyx_n_s_EntryAttributes); Py_VISIT(traverse_module_state->__pyx_n_s_EntryAttributes___getstate); Py_VISIT(traverse_module_state->__pyx_n_s_EntryAttributes___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_EntryAttributes___setstate); Py_VISIT(traverse_module_state->__pyx_n_s_EntryAttributes___setstate_cytho); Py_VISIT(traverse_module_state->__pyx_n_s_FUSEError); Py_VISIT(traverse_module_state->__pyx_n_s_FUSEError___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_FUSEError___setstate_cython); Py_VISIT(traverse_module_state->__pyx_kp_u_FUSE_fd_about_to_be_closed); Py_VISIT(traverse_module_state->__pyx_kp_u_FUSE_session_exit_flag_set_while); Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_submit_invalidate_entr); Py_VISIT(traverse_module_state->__pyx_n_s_FileHandleT); Py_VISIT(traverse_module_state->__pyx_n_s_FileInfo); Py_VISIT(traverse_module_state->__pyx_n_s_FileInfo___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_FileInfo___setstate_cython); Py_VISIT(traverse_module_state->__pyx_n_s_FileNameT); Py_VISIT(traverse_module_state->__pyx_n_s_FileNotFoundError); Py_VISIT(traverse_module_state->__pyx_n_s_FlagT); Py_VISIT(traverse_module_state->__pyx_kp_u_Groups); Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0); Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2); Py_VISIT(traverse_module_state->__pyx_kp_u_Initializing_pyfuse3); Py_VISIT(traverse_module_state->__pyx_n_s_InodeT); Py_VISIT(traverse_module_state->__pyx_kp_u_Kernel_too_old_pyfuse3_requires); Py_VISIT(traverse_module_state->__pyx_n_s_Lock); Py_VISIT(traverse_module_state->__pyx_n_s_MemoryError); Py_VISIT(traverse_module_state->__pyx_n_s_ModeT); Py_VISIT(traverse_module_state->__pyx_n_s_NANOS_PER_SEC); Py_VISIT(traverse_module_state->__pyx_kp_u_Need_to_call_init_before_main); Py_VISIT(traverse_module_state->__pyx_n_s_OSError); Py_VISIT(traverse_module_state->__pyx_n_s_O_DIRECTORY); Py_VISIT(traverse_module_state->__pyx_n_s_Operations); Py_VISIT(traverse_module_state->__pyx_n_s_OverflowError); Py_VISIT(traverse_module_state->__pyx_n_s_PickleError); Py_VISIT(traverse_module_state->__pyx_n_s_PicklingError); Py_VISIT(traverse_module_state->__pyx_n_s_Queue); Py_VISIT(traverse_module_state->__pyx_n_u_RENAME_EXCHANGE); Py_VISIT(traverse_module_state->__pyx_n_u_RENAME_NOREPLACE); Py_VISIT(traverse_module_state->__pyx_n_s_ROOT_INODE); Py_VISIT(traverse_module_state->__pyx_n_s_ReaddirToken); Py_VISIT(traverse_module_state->__pyx_n_s_ReaddirToken___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_ReaddirToken___setstate_cython); Py_VISIT(traverse_module_state->__pyx_n_s_RequestContext); Py_VISIT(traverse_module_state->__pyx_n_s_RequestContext___getstate); Py_VISIT(traverse_module_state->__pyx_n_s_RequestContext___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_RequestContext___setstate_cython); Py_VISIT(traverse_module_state->__pyx_kp_u_RequestContext_instances_can_t_b); Py_VISIT(traverse_module_state->__pyx_n_s_RuntimeError); Py_VISIT(traverse_module_state->__pyx_n_s_SetattrFields); Py_VISIT(traverse_module_state->__pyx_n_s_SetattrFields___getstate); Py_VISIT(traverse_module_state->__pyx_n_s_SetattrFields___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_SetattrFields___setstate_cython); Py_VISIT(traverse_module_state->__pyx_kp_u_SetattrFields_instances_can_t_be); Py_VISIT(traverse_module_state->__pyx_kp_u_Starting_notify_worker); Py_VISIT(traverse_module_state->__pyx_n_s_StatvfsData); Py_VISIT(traverse_module_state->__pyx_n_s_StatvfsData___getstate); Py_VISIT(traverse_module_state->__pyx_n_s_StatvfsData___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_StatvfsData___setstate); Py_VISIT(traverse_module_state->__pyx_n_s_StatvfsData___setstate_cython); Py_VISIT(traverse_module_state->__pyx_n_s_TYPE_CHECKING); Py_VISIT(traverse_module_state->__pyx_n_s_Thread); Py_VISIT(traverse_module_state->__pyx_n_s_TypeError); Py_VISIT(traverse_module_state->__pyx_kp_u_Unable_to_parse_s); Py_VISIT(traverse_module_state->__pyx_n_s_ValueError); Py_VISIT(traverse_module_state->__pyx_kp_u_Value_too_long_to_convert_to_Pyt); Py_VISIT(traverse_module_state->__pyx_n_s_WorkerData); Py_VISIT(traverse_module_state->__pyx_n_s_WorkerData___reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_WorkerData___setstate_cython); Py_VISIT(traverse_module_state->__pyx_kp_b__29); Py_VISIT(traverse_module_state->__pyx_kp_u__47); Py_VISIT(traverse_module_state->__pyx_n_s__49); Py_VISIT(traverse_module_state->__pyx_n_s__50); Py_VISIT(traverse_module_state->__pyx_n_s_abspath); Py_VISIT(traverse_module_state->__pyx_n_s_access); Py_VISIT(traverse_module_state->__pyx_n_s_aenter); Py_VISIT(traverse_module_state->__pyx_n_s_aexit); Py_VISIT(traverse_module_state->__pyx_n_s_allowed); Py_VISIT(traverse_module_state->__pyx_n_s_args); Py_VISIT(traverse_module_state->__pyx_n_s_async_wrapper); Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines); Py_VISIT(traverse_module_state->__pyx_n_s_attr); Py_VISIT(traverse_module_state->__pyx_n_s_attr_only); Py_VISIT(traverse_module_state->__pyx_n_u_attr_timeout); Py_VISIT(traverse_module_state->__pyx_n_s_await); Py_VISIT(traverse_module_state->__pyx_n_s_buf); Py_VISIT(traverse_module_state->__pyx_n_s_bufsize); Py_VISIT(traverse_module_state->__pyx_n_s_bufvec); Py_VISIT(traverse_module_state->__pyx_n_s_c); Py_VISIT(traverse_module_state->__pyx_n_s_cbuf); Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback); Py_VISIT(traverse_module_state->__pyx_n_s_close); Py_VISIT(traverse_module_state->__pyx_n_s_cname); Py_VISIT(traverse_module_state->__pyx_n_s_cnamespace); Py_VISIT(traverse_module_state->__pyx_n_s_cpath); Py_VISIT(traverse_module_state->__pyx_n_s_create); Py_VISIT(traverse_module_state->__pyx_n_s_ctx); Py_VISIT(traverse_module_state->__pyx_n_s_current_task); Py_VISIT(traverse_module_state->__pyx_n_s_current_trio_token); Py_VISIT(traverse_module_state->__pyx_n_s_cvalue); Py_VISIT(traverse_module_state->__pyx_n_s_daemon); Py_VISIT(traverse_module_state->__pyx_n_s_data); Py_VISIT(traverse_module_state->__pyx_n_s_debug); Py_VISIT(traverse_module_state->__pyx_n_s_decode); Py_VISIT(traverse_module_state->__pyx_n_s_default_options); Py_VISIT(traverse_module_state->__pyx_n_u_default_permissions); Py_VISIT(traverse_module_state->__pyx_n_s_deleted); Py_VISIT(traverse_module_state->__pyx_n_s_dict); Py_VISIT(traverse_module_state->__pyx_n_s_dict_2); Py_VISIT(traverse_module_state->__pyx_n_s_direct_io); Py_VISIT(traverse_module_state->__pyx_n_s_dirp); Py_VISIT(traverse_module_state->__pyx_kp_u_disable); Py_VISIT(traverse_module_state->__pyx_n_s_e); Py_VISIT(traverse_module_state->__pyx_kp_u_enable); Py_VISIT(traverse_module_state->__pyx_n_s_enable_acl); Py_VISIT(traverse_module_state->__pyx_n_s_enable_writeback_cache); Py_VISIT(traverse_module_state->__pyx_n_s_encode); Py_VISIT(traverse_module_state->__pyx_n_s_enter); Py_VISIT(traverse_module_state->__pyx_n_s_entry); Py_VISIT(traverse_module_state->__pyx_n_u_entry_timeout); Py_VISIT(traverse_module_state->__pyx_n_s_enumerate); Py_VISIT(traverse_module_state->__pyx_n_s_errno); Py_VISIT(traverse_module_state->__pyx_kp_u_errno_d); Py_VISIT(traverse_module_state->__pyx_n_s_error); Py_VISIT(traverse_module_state->__pyx_n_s_exc); Py_VISIT(traverse_module_state->__pyx_n_s_exception); Py_VISIT(traverse_module_state->__pyx_n_s_exit); Py_VISIT(traverse_module_state->__pyx_n_s_f_args); Py_VISIT(traverse_module_state->__pyx_n_u_f_bavail); Py_VISIT(traverse_module_state->__pyx_n_u_f_bfree); Py_VISIT(traverse_module_state->__pyx_n_u_f_blocks); Py_VISIT(traverse_module_state->__pyx_n_u_f_bsize); Py_VISIT(traverse_module_state->__pyx_n_u_f_favail); Py_VISIT(traverse_module_state->__pyx_n_u_f_ffree); Py_VISIT(traverse_module_state->__pyx_n_u_f_files); Py_VISIT(traverse_module_state->__pyx_n_u_f_frsize); Py_VISIT(traverse_module_state->__pyx_n_u_f_namemax); Py_VISIT(traverse_module_state->__pyx_n_s_fd); Py_VISIT(traverse_module_state->__pyx_n_s_fh); Py_VISIT(traverse_module_state->__pyx_n_s_fi); Py_VISIT(traverse_module_state->__pyx_n_s_fields); Py_VISIT(traverse_module_state->__pyx_n_s_flags); Py_VISIT(traverse_module_state->__pyx_n_s_flush); Py_VISIT(traverse_module_state->__pyx_n_s_forget); Py_VISIT(traverse_module_state->__pyx_n_s_fse); Py_VISIT(traverse_module_state->__pyx_n_s_fsync); Py_VISIT(traverse_module_state->__pyx_n_s_fsyncdir); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_access_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_access_fuse_reply__failed_w); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_buf_copy_failed_with); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_create_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_create_fuse_reply__failed_w); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_flush_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_flush_fuse_reply__failed_wi); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_fsync_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_fsyncdir_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_getattr_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_getattr_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_getxattr_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_getxattr_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_link_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_link_fuse_reply__failed_wit); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_listxattr_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_listxattr_fuse_reply__faile); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_lookup_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_lookup_fuse_reply__failed_w); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_lowlevel_notify_delete_retu); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_lowlevel_notify_inval_entry); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_lowlevel_notify_inval_inode); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_lowlevel_notify_store_retur); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_mkdir_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_mknod_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_open_async); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_opendir_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_opendir_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_read_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_read_fuse_reply__failed_wit); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_readdirplus_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_readdirplus_fuse_reply__fai); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_readlink_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_readlink_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_release_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_release_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_releasedir_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_releasedir_fuse_reply__fail); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_removexattr_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_removexattr_fuse_reply__fai); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_rename_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_rename_fuse_reply__failed_w); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_rmdir_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_session_mount_failed); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_session_new_failed); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_session_receive_buf_failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_setattr_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_setattr_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_setxattr_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_setxattr_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_u_fuse_stacktrace); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_statfs_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_statfs_fuse_reply__failed_w); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_symlink_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_symlink_fuse_reply__failed); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_unlink_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_unlink_fuse_reply__failed_w); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_write_async); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_write_buf_async); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_write_buf_fuse_reply__faile); Py_VISIT(traverse_module_state->__pyx_kp_u_fuse_write_fuse_reply__failed_wi); Py_VISIT(traverse_module_state->__pyx_n_s_g); Py_VISIT(traverse_module_state->__pyx_kp_u_gc); Py_VISIT(traverse_module_state->__pyx_n_u_generation); Py_VISIT(traverse_module_state->__pyx_n_s_get); Py_VISIT(traverse_module_state->__pyx_n_s_getLogger); Py_VISIT(traverse_module_state->__pyx_n_s_get_sup_groups); Py_VISIT(traverse_module_state->__pyx_n_s_getattr); Py_VISIT(traverse_module_state->__pyx_n_s_getfilesystemencoding); Py_VISIT(traverse_module_state->__pyx_n_s_getstate); Py_VISIT(traverse_module_state->__pyx_n_s_getxattr); Py_VISIT(traverse_module_state->__pyx_n_s_gids); Py_VISIT(traverse_module_state->__pyx_n_s_ignore_enoent); Py_VISIT(traverse_module_state->__pyx_n_s_import); Py_VISIT(traverse_module_state->__pyx_n_s_init); Py_VISIT(traverse_module_state->__pyx_n_s_initializing); Py_VISIT(traverse_module_state->__pyx_n_s_ino); Py_VISIT(traverse_module_state->__pyx_n_s_inode); Py_VISIT(traverse_module_state->__pyx_n_s_inode_p); Py_VISIT(traverse_module_state->__pyx_n_s_invalidate_entry); Py_VISIT(traverse_module_state->__pyx_n_s_invalidate_entry_async); Py_VISIT(traverse_module_state->__pyx_n_s_invalidate_inode); Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine); Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled); Py_VISIT(traverse_module_state->__pyx_n_s_items); Py_VISIT(traverse_module_state->__pyx_n_s_join); Py_VISIT(traverse_module_state->__pyx_n_s_k); Py_VISIT(traverse_module_state->__pyx_n_s_keep_cache); Py_VISIT(traverse_module_state->__pyx_n_s_len); Py_VISIT(traverse_module_state->__pyx_n_s_len_s); Py_VISIT(traverse_module_state->__pyx_n_s_line); Py_VISIT(traverse_module_state->__pyx_n_s_link); Py_VISIT(traverse_module_state->__pyx_n_s_listdir); Py_VISIT(traverse_module_state->__pyx_n_s_listxattr); Py_VISIT(traverse_module_state->__pyx_n_s_log); Py_VISIT(traverse_module_state->__pyx_n_s_logging); Py_VISIT(traverse_module_state->__pyx_n_s_lookup); Py_VISIT(traverse_module_state->__pyx_n_s_lowlevel); Py_VISIT(traverse_module_state->__pyx_n_s_main); Py_VISIT(traverse_module_state->__pyx_n_s_main_2); Py_VISIT(traverse_module_state->__pyx_n_s_mask); Py_VISIT(traverse_module_state->__pyx_n_s_max_tasks); Py_VISIT(traverse_module_state->__pyx_n_s_min_tasks); Py_VISIT(traverse_module_state->__pyx_n_s_mkdir); Py_VISIT(traverse_module_state->__pyx_n_s_mknod); Py_VISIT(traverse_module_state->__pyx_n_s_mountpoint); Py_VISIT(traverse_module_state->__pyx_kp_u_mountpoint__argument_must_be_of); Py_VISIT(traverse_module_state->__pyx_n_s_name); Py_VISIT(traverse_module_state->__pyx_n_s_name_2); Py_VISIT(traverse_module_state->__pyx_kp_u_name_argument_must_be_of_type_s); Py_VISIT(traverse_module_state->__pyx_n_s_name_b); Py_VISIT(traverse_module_state->__pyx_n_s_names); Py_VISIT(traverse_module_state->__pyx_n_s_namespace); Py_VISIT(traverse_module_state->__pyx_kp_u_namespace_parameter_must_be_sys); Py_VISIT(traverse_module_state->__pyx_n_s_new); Py_VISIT(traverse_module_state->__pyx_n_s_newname); Py_VISIT(traverse_module_state->__pyx_n_s_newparent); Py_VISIT(traverse_module_state->__pyx_n_s_next_id); Py_VISIT(traverse_module_state->__pyx_kp_s_no_default___reduce___due_to_non); Py_VISIT(traverse_module_state->__pyx_n_s_nonseekable); Py_VISIT(traverse_module_state->__pyx_n_s_notify_closing); Py_VISIT(traverse_module_state->__pyx_n_s_notify_loop); Py_VISIT(traverse_module_state->__pyx_n_s_notify_store); Py_VISIT(traverse_module_state->__pyx_n_s_now); Py_VISIT(traverse_module_state->__pyx_n_s_nursery); Py_VISIT(traverse_module_state->__pyx_kp_b_o); Py_VISIT(traverse_module_state->__pyx_n_s_off); Py_VISIT(traverse_module_state->__pyx_n_s_offset); Py_VISIT(traverse_module_state->__pyx_n_s_open); Py_VISIT(traverse_module_state->__pyx_n_s_open_nursery); Py_VISIT(traverse_module_state->__pyx_n_s_opendir); Py_VISIT(traverse_module_state->__pyx_n_s_ops); Py_VISIT(traverse_module_state->__pyx_n_s_options); Py_VISIT(traverse_module_state->__pyx_n_s_os); Py_VISIT(traverse_module_state->__pyx_n_s_os_path); Py_VISIT(traverse_module_state->__pyx_n_s_path); Py_VISIT(traverse_module_state->__pyx_kp_u_path_argument_must_be_of_type_s); Py_VISIT(traverse_module_state->__pyx_n_s_path_b); Py_VISIT(traverse_module_state->__pyx_n_s_pbuf); Py_VISIT(traverse_module_state->__pyx_n_s_pickle); Py_VISIT(traverse_module_state->__pyx_n_s_pid); Py_VISIT(traverse_module_state->__pyx_kp_u_proc_d_status); Py_VISIT(traverse_module_state->__pyx_n_s_put); Py_VISIT(traverse_module_state->__pyx_kp_u_py_retval_was_not_awaited_please); Py_VISIT(traverse_module_state->__pyx_n_s_pybuf); Py_VISIT(traverse_module_state->__pyx_n_b_pyfuse3); Py_VISIT(traverse_module_state->__pyx_n_s_pyfuse3); Py_VISIT(traverse_module_state->__pyx_n_u_pyfuse3); Py_VISIT(traverse_module_state->__pyx_n_s_pyfuse3_2); Py_VISIT(traverse_module_state->__pyx_kp_u_pyfuse_02d); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_RequestContext); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle__WorkerData); Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable); Py_VISIT(traverse_module_state->__pyx_n_s_queue); Py_VISIT(traverse_module_state->__pyx_n_u_r); Py_VISIT(traverse_module_state->__pyx_n_s_range); Py_VISIT(traverse_module_state->__pyx_n_s_read); Py_VISIT(traverse_module_state->__pyx_n_s_readdir); Py_VISIT(traverse_module_state->__pyx_n_s_readdir_reply); Py_VISIT(traverse_module_state->__pyx_n_s_readlink); Py_VISIT(traverse_module_state->__pyx_n_s_reduce); Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython); Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex); Py_VISIT(traverse_module_state->__pyx_n_s_release); Py_VISIT(traverse_module_state->__pyx_n_s_releasedir); Py_VISIT(traverse_module_state->__pyx_n_s_removexattr); Py_VISIT(traverse_module_state->__pyx_n_s_rename); Py_VISIT(traverse_module_state->__pyx_n_s_req); Py_VISIT(traverse_module_state->__pyx_n_s_res); Py_VISIT(traverse_module_state->__pyx_n_s_ret); Py_VISIT(traverse_module_state->__pyx_n_s_rmdir); Py_VISIT(traverse_module_state->__pyx_kp_u_s_No_tasks_waiting_starting_ano); Py_VISIT(traverse_module_state->__pyx_kp_u_s_terminated); Py_VISIT(traverse_module_state->__pyx_kp_u_s_too_many_idle_tasks_d_total_d); Py_VISIT(traverse_module_state->__pyx_n_s_self); Py_VISIT(traverse_module_state->__pyx_kp_s_self_req_cannot_be_converted_to); Py_VISIT(traverse_module_state->__pyx_n_s_send); Py_VISIT(traverse_module_state->__pyx_n_s_session_loop); Py_VISIT(traverse_module_state->__pyx_n_s_setattr); Py_VISIT(traverse_module_state->__pyx_n_s_setstate); Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython); Py_VISIT(traverse_module_state->__pyx_n_s_setxattr); Py_VISIT(traverse_module_state->__pyx_n_s_size_guess); Py_VISIT(traverse_module_state->__pyx_n_s_slen); Py_VISIT(traverse_module_state->__pyx_n_s_spec); Py_VISIT(traverse_module_state->__pyx_n_s_split); Py_VISIT(traverse_module_state->__pyx_kp_s_src_handlers_pxi); Py_VISIT(traverse_module_state->__pyx_kp_s_src_internal_pxi); Py_VISIT(traverse_module_state->__pyx_kp_s_src_pyfuse3_pyx); Py_VISIT(traverse_module_state->__pyx_n_u_st_atime_ns); Py_VISIT(traverse_module_state->__pyx_n_u_st_birthtime_ns); Py_VISIT(traverse_module_state->__pyx_n_u_st_blksize); Py_VISIT(traverse_module_state->__pyx_n_u_st_blocks); Py_VISIT(traverse_module_state->__pyx_n_u_st_ctime_ns); Py_VISIT(traverse_module_state->__pyx_n_u_st_gid); Py_VISIT(traverse_module_state->__pyx_n_u_st_ino); Py_VISIT(traverse_module_state->__pyx_n_u_st_mode); Py_VISIT(traverse_module_state->__pyx_n_u_st_mtime_ns); Py_VISIT(traverse_module_state->__pyx_n_u_st_nlink); Py_VISIT(traverse_module_state->__pyx_n_u_st_rdev); Py_VISIT(traverse_module_state->__pyx_n_u_st_size); Py_VISIT(traverse_module_state->__pyx_n_u_st_uid); Py_VISIT(traverse_module_state->__pyx_n_s_stacktrace); Py_VISIT(traverse_module_state->__pyx_n_s_start); Py_VISIT(traverse_module_state->__pyx_n_s_start_soon); Py_VISIT(traverse_module_state->__pyx_n_s_startswith); Py_VISIT(traverse_module_state->__pyx_n_s_state); Py_VISIT(traverse_module_state->__pyx_n_s_statfs); Py_VISIT(traverse_module_state->__pyx_n_s_stats); Py_VISIT(traverse_module_state->__pyx_n_s_strerror); Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource); Py_VISIT(traverse_module_state->__pyx_n_s_supports_dot_lookup); Py_VISIT(traverse_module_state->__pyx_n_u_surrogateescape); Py_VISIT(traverse_module_state->__pyx_n_s_symlink); Py_VISIT(traverse_module_state->__pyx_n_s_syncfs); Py_VISIT(traverse_module_state->__pyx_n_s_sys); Py_VISIT(traverse_module_state->__pyx_n_u_system); Py_VISIT(traverse_module_state->__pyx_n_s_t); Py_VISIT(traverse_module_state->__pyx_n_s_target); Py_VISIT(traverse_module_state->__pyx_n_s_terminate); Py_VISIT(traverse_module_state->__pyx_kp_u_terminating_notify_thread); Py_VISIT(traverse_module_state->__pyx_n_s_test); Py_VISIT(traverse_module_state->__pyx_n_s_threading); Py_VISIT(traverse_module_state->__pyx_n_s_throw); Py_VISIT(traverse_module_state->__pyx_n_s_tmp); Py_VISIT(traverse_module_state->__pyx_n_s_to_set); Py_VISIT(traverse_module_state->__pyx_n_s_token); Py_VISIT(traverse_module_state->__pyx_n_s_trio); Py_VISIT(traverse_module_state->__pyx_n_s_trio_token); Py_VISIT(traverse_module_state->__pyx_n_s_typing); Py_VISIT(traverse_module_state->__pyx_kp_u_unknown_flag_s_o); Py_VISIT(traverse_module_state->__pyx_n_s_unlink); Py_VISIT(traverse_module_state->__pyx_n_s_unmount); Py_VISIT(traverse_module_state->__pyx_n_s_update); Py_VISIT(traverse_module_state->__pyx_kp_u_us_ascii); Py_VISIT(traverse_module_state->__pyx_n_s_use_setstate); Py_VISIT(traverse_module_state->__pyx_n_u_user); Py_VISIT(traverse_module_state->__pyx_n_s_v); Py_VISIT(traverse_module_state->__pyx_n_s_value); Py_VISIT(traverse_module_state->__pyx_n_s_version); Py_VISIT(traverse_module_state->__pyx_n_s_wait_fuse_readable); Py_VISIT(traverse_module_state->__pyx_n_s_wait_readable); Py_VISIT(traverse_module_state->__pyx_n_s_write); Py_VISIT(traverse_module_state->__pyx_n_s_x); Py_VISIT(traverse_module_state->__pyx_int_0); Py_VISIT(traverse_module_state->__pyx_int_1); Py_VISIT(traverse_module_state->__pyx_int_35895208); Py_VISIT(traverse_module_state->__pyx_int_44617694); Py_VISIT(traverse_module_state->__pyx_int_144710093); Py_VISIT(traverse_module_state->__pyx_int_154557683); Py_VISIT(traverse_module_state->__pyx_int_240542287); Py_VISIT(traverse_module_state->__pyx_int_244161614); Py_VISIT(traverse_module_state->__pyx_int_1000000000); Py_VISIT(traverse_module_state->__pyx_tuple_); Py_VISIT(traverse_module_state->__pyx_slice__45); Py_VISIT(traverse_module_state->__pyx_tuple__15); Py_VISIT(traverse_module_state->__pyx_tuple__34); Py_VISIT(traverse_module_state->__pyx_tuple__36); Py_VISIT(traverse_module_state->__pyx_tuple__37); Py_VISIT(traverse_module_state->__pyx_tuple__38); Py_VISIT(traverse_module_state->__pyx_tuple__39); Py_VISIT(traverse_module_state->__pyx_tuple__40); Py_VISIT(traverse_module_state->__pyx_tuple__41); Py_VISIT(traverse_module_state->__pyx_tuple__42); Py_VISIT(traverse_module_state->__pyx_tuple__44); Py_VISIT(traverse_module_state->__pyx_tuple__46); Py_VISIT(traverse_module_state->__pyx_tuple__48); Py_VISIT(traverse_module_state->__pyx_tuple__51); Py_VISIT(traverse_module_state->__pyx_tuple__52); Py_VISIT(traverse_module_state->__pyx_tuple__53); Py_VISIT(traverse_module_state->__pyx_tuple__55); Py_VISIT(traverse_module_state->__pyx_tuple__57); Py_VISIT(traverse_module_state->__pyx_tuple__58); Py_VISIT(traverse_module_state->__pyx_tuple__59); Py_VISIT(traverse_module_state->__pyx_tuple__60); Py_VISIT(traverse_module_state->__pyx_tuple__61); Py_VISIT(traverse_module_state->__pyx_tuple__62); Py_VISIT(traverse_module_state->__pyx_tuple__63); Py_VISIT(traverse_module_state->__pyx_tuple__64); Py_VISIT(traverse_module_state->__pyx_tuple__65); Py_VISIT(traverse_module_state->__pyx_tuple__66); Py_VISIT(traverse_module_state->__pyx_tuple__67); Py_VISIT(traverse_module_state->__pyx_tuple__68); Py_VISIT(traverse_module_state->__pyx_tuple__69); Py_VISIT(traverse_module_state->__pyx_tuple__70); Py_VISIT(traverse_module_state->__pyx_tuple__71); Py_VISIT(traverse_module_state->__pyx_tuple__74); Py_VISIT(traverse_module_state->__pyx_tuple__75); Py_VISIT(traverse_module_state->__pyx_tuple__76); Py_VISIT(traverse_module_state->__pyx_tuple__77); Py_VISIT(traverse_module_state->__pyx_tuple__78); Py_VISIT(traverse_module_state->__pyx_tuple__79); Py_VISIT(traverse_module_state->__pyx_tuple__80); Py_VISIT(traverse_module_state->__pyx_tuple__81); Py_VISIT(traverse_module_state->__pyx_tuple__83); Py_VISIT(traverse_module_state->__pyx_tuple__86); Py_VISIT(traverse_module_state->__pyx_tuple__93); Py_VISIT(traverse_module_state->__pyx_tuple__95); Py_VISIT(traverse_module_state->__pyx_codeobj__2); Py_VISIT(traverse_module_state->__pyx_codeobj__3); Py_VISIT(traverse_module_state->__pyx_codeobj__4); Py_VISIT(traverse_module_state->__pyx_codeobj__5); Py_VISIT(traverse_module_state->__pyx_codeobj__6); Py_VISIT(traverse_module_state->__pyx_codeobj__7); Py_VISIT(traverse_module_state->__pyx_codeobj__8); Py_VISIT(traverse_module_state->__pyx_codeobj__9); Py_VISIT(traverse_module_state->__pyx_tuple__107); Py_VISIT(traverse_module_state->__pyx_tuple__109); Py_VISIT(traverse_module_state->__pyx_tuple__111); Py_VISIT(traverse_module_state->__pyx_tuple__113); Py_VISIT(traverse_module_state->__pyx_tuple__114); Py_VISIT(traverse_module_state->__pyx_tuple__116); Py_VISIT(traverse_module_state->__pyx_tuple__117); Py_VISIT(traverse_module_state->__pyx_tuple__119); Py_VISIT(traverse_module_state->__pyx_tuple__121); Py_VISIT(traverse_module_state->__pyx_tuple__123); Py_VISIT(traverse_module_state->__pyx_tuple__124); Py_VISIT(traverse_module_state->__pyx_tuple__126); Py_VISIT(traverse_module_state->__pyx_tuple__127); Py_VISIT(traverse_module_state->__pyx_tuple__129); Py_VISIT(traverse_module_state->__pyx_tuple__131); Py_VISIT(traverse_module_state->__pyx_tuple__132); Py_VISIT(traverse_module_state->__pyx_tuple__134); Py_VISIT(traverse_module_state->__pyx_tuple__136); Py_VISIT(traverse_module_state->__pyx_tuple__138); Py_VISIT(traverse_module_state->__pyx_codeobj__10); Py_VISIT(traverse_module_state->__pyx_codeobj__11); Py_VISIT(traverse_module_state->__pyx_codeobj__12); Py_VISIT(traverse_module_state->__pyx_codeobj__13); Py_VISIT(traverse_module_state->__pyx_codeobj__14); Py_VISIT(traverse_module_state->__pyx_codeobj__16); Py_VISIT(traverse_module_state->__pyx_codeobj__17); Py_VISIT(traverse_module_state->__pyx_codeobj__18); Py_VISIT(traverse_module_state->__pyx_codeobj__19); Py_VISIT(traverse_module_state->__pyx_codeobj__20); Py_VISIT(traverse_module_state->__pyx_codeobj__21); Py_VISIT(traverse_module_state->__pyx_codeobj__22); Py_VISIT(traverse_module_state->__pyx_codeobj__23); Py_VISIT(traverse_module_state->__pyx_codeobj__24); Py_VISIT(traverse_module_state->__pyx_codeobj__25); Py_VISIT(traverse_module_state->__pyx_codeobj__26); Py_VISIT(traverse_module_state->__pyx_codeobj__27); Py_VISIT(traverse_module_state->__pyx_codeobj__28); Py_VISIT(traverse_module_state->__pyx_codeobj__30); Py_VISIT(traverse_module_state->__pyx_codeobj__31); Py_VISIT(traverse_module_state->__pyx_codeobj__32); Py_VISIT(traverse_module_state->__pyx_codeobj__33); Py_VISIT(traverse_module_state->__pyx_codeobj__35); Py_VISIT(traverse_module_state->__pyx_codeobj__43); Py_VISIT(traverse_module_state->__pyx_codeobj__54); Py_VISIT(traverse_module_state->__pyx_codeobj__56); Py_VISIT(traverse_module_state->__pyx_codeobj__72); Py_VISIT(traverse_module_state->__pyx_codeobj__73); Py_VISIT(traverse_module_state->__pyx_codeobj__82); Py_VISIT(traverse_module_state->__pyx_codeobj__84); Py_VISIT(traverse_module_state->__pyx_codeobj__85); Py_VISIT(traverse_module_state->__pyx_codeobj__87); Py_VISIT(traverse_module_state->__pyx_codeobj__88); Py_VISIT(traverse_module_state->__pyx_codeobj__89); Py_VISIT(traverse_module_state->__pyx_codeobj__90); Py_VISIT(traverse_module_state->__pyx_codeobj__91); Py_VISIT(traverse_module_state->__pyx_codeobj__92); Py_VISIT(traverse_module_state->__pyx_codeobj__94); Py_VISIT(traverse_module_state->__pyx_codeobj__96); Py_VISIT(traverse_module_state->__pyx_codeobj__97); Py_VISIT(traverse_module_state->__pyx_codeobj__98); Py_VISIT(traverse_module_state->__pyx_codeobj__99); Py_VISIT(traverse_module_state->__pyx_codeobj__100); Py_VISIT(traverse_module_state->__pyx_codeobj__101); Py_VISIT(traverse_module_state->__pyx_codeobj__102); Py_VISIT(traverse_module_state->__pyx_codeobj__103); Py_VISIT(traverse_module_state->__pyx_codeobj__104); Py_VISIT(traverse_module_state->__pyx_codeobj__105); Py_VISIT(traverse_module_state->__pyx_codeobj__106); Py_VISIT(traverse_module_state->__pyx_codeobj__108); Py_VISIT(traverse_module_state->__pyx_codeobj__110); Py_VISIT(traverse_module_state->__pyx_codeobj__112); Py_VISIT(traverse_module_state->__pyx_codeobj__115); Py_VISIT(traverse_module_state->__pyx_codeobj__118); Py_VISIT(traverse_module_state->__pyx_codeobj__120); Py_VISIT(traverse_module_state->__pyx_codeobj__122); Py_VISIT(traverse_module_state->__pyx_codeobj__125); Py_VISIT(traverse_module_state->__pyx_codeobj__128); Py_VISIT(traverse_module_state->__pyx_codeobj__130); Py_VISIT(traverse_module_state->__pyx_codeobj__133); Py_VISIT(traverse_module_state->__pyx_codeobj__135); Py_VISIT(traverse_module_state->__pyx_codeobj__137); Py_VISIT(traverse_module_state->__pyx_codeobj__139); Py_VISIT(traverse_module_state->__pyx_codeobj__140); return 0; } #endif /* #### Code section: module_state_defines ### */ #define __pyx_d __pyx_mstate_global->__pyx_d #define __pyx_b __pyx_mstate_global->__pyx_b #define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime #define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple #define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes #define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode #ifdef __Pyx_CyFunction_USED #define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType #endif #ifdef __Pyx_FusedFunction_USED #define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType #endif #ifdef __Pyx_Generator_USED #define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType #endif #ifdef __Pyx_IterableCoroutine_USED #define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType #endif #ifdef __Pyx_Coroutine_USED #define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType #endif #ifdef __Pyx_Coroutine_USED #define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #define __pyx_ptype_7cpython_4type_type __pyx_mstate_global->__pyx_ptype_7cpython_4type_type #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #endif #if CYTHON_USE_MODULE_STATE #define __pyx_type_7pyfuse3__Container __pyx_mstate_global->__pyx_type_7pyfuse3__Container #define __pyx_type_7pyfuse3_ReaddirToken __pyx_mstate_global->__pyx_type_7pyfuse3_ReaddirToken #define __pyx_type_7pyfuse3__WorkerData __pyx_mstate_global->__pyx_type_7pyfuse3__WorkerData #define __pyx_type_7pyfuse3_RequestContext __pyx_mstate_global->__pyx_type_7pyfuse3_RequestContext #define __pyx_type_7pyfuse3_SetattrFields __pyx_mstate_global->__pyx_type_7pyfuse3_SetattrFields #define __pyx_type_7pyfuse3_EntryAttributes __pyx_mstate_global->__pyx_type_7pyfuse3_EntryAttributes #define __pyx_type_7pyfuse3_FileInfo __pyx_mstate_global->__pyx_type_7pyfuse3_FileInfo #define __pyx_type_7pyfuse3_StatvfsData __pyx_mstate_global->__pyx_type_7pyfuse3_StatvfsData #define __pyx_type_7pyfuse3_FUSEError __pyx_mstate_global->__pyx_type_7pyfuse3_FUSEError #define __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async #define __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async #define __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async #define __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async #define __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async #define __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async #define __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async #define __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async #define __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async #define __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async #define __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async #define __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async #define __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async #define __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async #define __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async #define __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async #define __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async #define __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async #define __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async #define __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async #define __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async #define __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async #define __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async #define __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async #define __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async #define __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async #define __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async #define __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async #define __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async #define __pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable #define __pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop #define __pyx_type_7pyfuse3___pyx_scope_struct_31_main __pyx_mstate_global->__pyx_type_7pyfuse3___pyx_scope_struct_31_main #endif #define __pyx_ptype_7pyfuse3__Container __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container #define __pyx_ptype_7pyfuse3_ReaddirToken __pyx_mstate_global->__pyx_ptype_7pyfuse3_ReaddirToken #define __pyx_ptype_7pyfuse3__WorkerData __pyx_mstate_global->__pyx_ptype_7pyfuse3__WorkerData #define __pyx_ptype_7pyfuse3_RequestContext __pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext #define __pyx_ptype_7pyfuse3_SetattrFields __pyx_mstate_global->__pyx_ptype_7pyfuse3_SetattrFields #define __pyx_ptype_7pyfuse3_EntryAttributes __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes #define __pyx_ptype_7pyfuse3_FileInfo __pyx_mstate_global->__pyx_ptype_7pyfuse3_FileInfo #define __pyx_ptype_7pyfuse3_StatvfsData __pyx_mstate_global->__pyx_ptype_7pyfuse3_StatvfsData #define __pyx_ptype_7pyfuse3_FUSEError __pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError #define __pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async #define __pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable #define __pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop #define __pyx_ptype_7pyfuse3___pyx_scope_struct_31_main __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main #define __pyx_kp_u_Calling_fuse_session_destroy __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_destroy #define __pyx_kp_u_Calling_fuse_session_mount __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_mount #define __pyx_kp_u_Calling_fuse_session_new __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_new #define __pyx_kp_u_Calling_fuse_session_unmount __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_unmount #define __pyx_n_s_ClosedResourceError __pyx_mstate_global->__pyx_n_s_ClosedResourceError #define __pyx_n_s_Container __pyx_mstate_global->__pyx_n_s_Container #define __pyx_n_s_Container___reduce_cython __pyx_mstate_global->__pyx_n_s_Container___reduce_cython #define __pyx_n_s_Container___setstate_cython __pyx_mstate_global->__pyx_n_s_Container___setstate_cython #define __pyx_n_u_ENOATTR __pyx_mstate_global->__pyx_n_u_ENOATTR #define __pyx_n_s_EntryAttributes __pyx_mstate_global->__pyx_n_s_EntryAttributes #define __pyx_n_s_EntryAttributes___getstate __pyx_mstate_global->__pyx_n_s_EntryAttributes___getstate #define __pyx_n_s_EntryAttributes___reduce_cython __pyx_mstate_global->__pyx_n_s_EntryAttributes___reduce_cython #define __pyx_n_s_EntryAttributes___setstate __pyx_mstate_global->__pyx_n_s_EntryAttributes___setstate #define __pyx_n_s_EntryAttributes___setstate_cytho __pyx_mstate_global->__pyx_n_s_EntryAttributes___setstate_cytho #define __pyx_n_s_FUSEError __pyx_mstate_global->__pyx_n_s_FUSEError #define __pyx_n_s_FUSEError___reduce_cython __pyx_mstate_global->__pyx_n_s_FUSEError___reduce_cython #define __pyx_n_s_FUSEError___setstate_cython __pyx_mstate_global->__pyx_n_s_FUSEError___setstate_cython #define __pyx_kp_u_FUSE_fd_about_to_be_closed __pyx_mstate_global->__pyx_kp_u_FUSE_fd_about_to_be_closed #define __pyx_kp_u_FUSE_session_exit_flag_set_while __pyx_mstate_global->__pyx_kp_u_FUSE_session_exit_flag_set_while #define __pyx_kp_u_Failed_to_submit_invalidate_entr __pyx_mstate_global->__pyx_kp_u_Failed_to_submit_invalidate_entr #define __pyx_n_s_FileHandleT __pyx_mstate_global->__pyx_n_s_FileHandleT #define __pyx_n_s_FileInfo __pyx_mstate_global->__pyx_n_s_FileInfo #define __pyx_n_s_FileInfo___reduce_cython __pyx_mstate_global->__pyx_n_s_FileInfo___reduce_cython #define __pyx_n_s_FileInfo___setstate_cython __pyx_mstate_global->__pyx_n_s_FileInfo___setstate_cython #define __pyx_n_s_FileNameT __pyx_mstate_global->__pyx_n_s_FileNameT #define __pyx_n_s_FileNotFoundError __pyx_mstate_global->__pyx_n_s_FileNotFoundError #define __pyx_n_s_FlagT __pyx_mstate_global->__pyx_n_s_FlagT #define __pyx_kp_u_Groups __pyx_mstate_global->__pyx_kp_u_Groups #define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0 #define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2 #define __pyx_kp_u_Initializing_pyfuse3 __pyx_mstate_global->__pyx_kp_u_Initializing_pyfuse3 #define __pyx_n_s_InodeT __pyx_mstate_global->__pyx_n_s_InodeT #define __pyx_kp_u_Kernel_too_old_pyfuse3_requires __pyx_mstate_global->__pyx_kp_u_Kernel_too_old_pyfuse3_requires #define __pyx_n_s_Lock __pyx_mstate_global->__pyx_n_s_Lock #define __pyx_n_s_MemoryError __pyx_mstate_global->__pyx_n_s_MemoryError #define __pyx_n_s_ModeT __pyx_mstate_global->__pyx_n_s_ModeT #define __pyx_n_s_NANOS_PER_SEC __pyx_mstate_global->__pyx_n_s_NANOS_PER_SEC #define __pyx_kp_u_Need_to_call_init_before_main __pyx_mstate_global->__pyx_kp_u_Need_to_call_init_before_main #define __pyx_n_s_OSError __pyx_mstate_global->__pyx_n_s_OSError #define __pyx_n_s_O_DIRECTORY __pyx_mstate_global->__pyx_n_s_O_DIRECTORY #define __pyx_n_s_Operations __pyx_mstate_global->__pyx_n_s_Operations #define __pyx_n_s_OverflowError __pyx_mstate_global->__pyx_n_s_OverflowError #define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError #define __pyx_n_s_PicklingError __pyx_mstate_global->__pyx_n_s_PicklingError #define __pyx_n_s_Queue __pyx_mstate_global->__pyx_n_s_Queue #define __pyx_n_u_RENAME_EXCHANGE __pyx_mstate_global->__pyx_n_u_RENAME_EXCHANGE #define __pyx_n_u_RENAME_NOREPLACE __pyx_mstate_global->__pyx_n_u_RENAME_NOREPLACE #define __pyx_n_s_ROOT_INODE __pyx_mstate_global->__pyx_n_s_ROOT_INODE #define __pyx_n_s_ReaddirToken __pyx_mstate_global->__pyx_n_s_ReaddirToken #define __pyx_n_s_ReaddirToken___reduce_cython __pyx_mstate_global->__pyx_n_s_ReaddirToken___reduce_cython #define __pyx_n_s_ReaddirToken___setstate_cython __pyx_mstate_global->__pyx_n_s_ReaddirToken___setstate_cython #define __pyx_n_s_RequestContext __pyx_mstate_global->__pyx_n_s_RequestContext #define __pyx_n_s_RequestContext___getstate __pyx_mstate_global->__pyx_n_s_RequestContext___getstate #define __pyx_n_s_RequestContext___reduce_cython __pyx_mstate_global->__pyx_n_s_RequestContext___reduce_cython #define __pyx_n_s_RequestContext___setstate_cython __pyx_mstate_global->__pyx_n_s_RequestContext___setstate_cython #define __pyx_kp_u_RequestContext_instances_can_t_b __pyx_mstate_global->__pyx_kp_u_RequestContext_instances_can_t_b #define __pyx_n_s_RuntimeError __pyx_mstate_global->__pyx_n_s_RuntimeError #define __pyx_n_s_SetattrFields __pyx_mstate_global->__pyx_n_s_SetattrFields #define __pyx_n_s_SetattrFields___getstate __pyx_mstate_global->__pyx_n_s_SetattrFields___getstate #define __pyx_n_s_SetattrFields___reduce_cython __pyx_mstate_global->__pyx_n_s_SetattrFields___reduce_cython #define __pyx_n_s_SetattrFields___setstate_cython __pyx_mstate_global->__pyx_n_s_SetattrFields___setstate_cython #define __pyx_kp_u_SetattrFields_instances_can_t_be __pyx_mstate_global->__pyx_kp_u_SetattrFields_instances_can_t_be #define __pyx_kp_u_Starting_notify_worker __pyx_mstate_global->__pyx_kp_u_Starting_notify_worker #define __pyx_n_s_StatvfsData __pyx_mstate_global->__pyx_n_s_StatvfsData #define __pyx_n_s_StatvfsData___getstate __pyx_mstate_global->__pyx_n_s_StatvfsData___getstate #define __pyx_n_s_StatvfsData___reduce_cython __pyx_mstate_global->__pyx_n_s_StatvfsData___reduce_cython #define __pyx_n_s_StatvfsData___setstate __pyx_mstate_global->__pyx_n_s_StatvfsData___setstate #define __pyx_n_s_StatvfsData___setstate_cython __pyx_mstate_global->__pyx_n_s_StatvfsData___setstate_cython #define __pyx_n_s_TYPE_CHECKING __pyx_mstate_global->__pyx_n_s_TYPE_CHECKING #define __pyx_n_s_Thread __pyx_mstate_global->__pyx_n_s_Thread #define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError #define __pyx_kp_u_Unable_to_parse_s __pyx_mstate_global->__pyx_kp_u_Unable_to_parse_s #define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError #define __pyx_kp_u_Value_too_long_to_convert_to_Pyt __pyx_mstate_global->__pyx_kp_u_Value_too_long_to_convert_to_Pyt #define __pyx_n_s_WorkerData __pyx_mstate_global->__pyx_n_s_WorkerData #define __pyx_n_s_WorkerData___reduce_cython __pyx_mstate_global->__pyx_n_s_WorkerData___reduce_cython #define __pyx_n_s_WorkerData___setstate_cython __pyx_mstate_global->__pyx_n_s_WorkerData___setstate_cython #define __pyx_kp_b__29 __pyx_mstate_global->__pyx_kp_b__29 #define __pyx_kp_u__47 __pyx_mstate_global->__pyx_kp_u__47 #define __pyx_n_s__49 __pyx_mstate_global->__pyx_n_s__49 #define __pyx_n_s__50 __pyx_mstate_global->__pyx_n_s__50 #define __pyx_n_s_abspath __pyx_mstate_global->__pyx_n_s_abspath #define __pyx_n_s_access __pyx_mstate_global->__pyx_n_s_access #define __pyx_n_s_aenter __pyx_mstate_global->__pyx_n_s_aenter #define __pyx_n_s_aexit __pyx_mstate_global->__pyx_n_s_aexit #define __pyx_n_s_allowed __pyx_mstate_global->__pyx_n_s_allowed #define __pyx_n_s_args __pyx_mstate_global->__pyx_n_s_args #define __pyx_n_s_async_wrapper __pyx_mstate_global->__pyx_n_s_async_wrapper #define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines #define __pyx_n_s_attr __pyx_mstate_global->__pyx_n_s_attr #define __pyx_n_s_attr_only __pyx_mstate_global->__pyx_n_s_attr_only #define __pyx_n_u_attr_timeout __pyx_mstate_global->__pyx_n_u_attr_timeout #define __pyx_n_s_await __pyx_mstate_global->__pyx_n_s_await #define __pyx_n_s_buf __pyx_mstate_global->__pyx_n_s_buf #define __pyx_n_s_bufsize __pyx_mstate_global->__pyx_n_s_bufsize #define __pyx_n_s_bufvec __pyx_mstate_global->__pyx_n_s_bufvec #define __pyx_n_s_c __pyx_mstate_global->__pyx_n_s_c #define __pyx_n_s_cbuf __pyx_mstate_global->__pyx_n_s_cbuf #define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback #define __pyx_n_s_close __pyx_mstate_global->__pyx_n_s_close #define __pyx_n_s_cname __pyx_mstate_global->__pyx_n_s_cname #define __pyx_n_s_cnamespace __pyx_mstate_global->__pyx_n_s_cnamespace #define __pyx_n_s_cpath __pyx_mstate_global->__pyx_n_s_cpath #define __pyx_n_s_create __pyx_mstate_global->__pyx_n_s_create #define __pyx_n_s_ctx __pyx_mstate_global->__pyx_n_s_ctx #define __pyx_n_s_current_task __pyx_mstate_global->__pyx_n_s_current_task #define __pyx_n_s_current_trio_token __pyx_mstate_global->__pyx_n_s_current_trio_token #define __pyx_n_s_cvalue __pyx_mstate_global->__pyx_n_s_cvalue #define __pyx_n_s_daemon __pyx_mstate_global->__pyx_n_s_daemon #define __pyx_n_s_data __pyx_mstate_global->__pyx_n_s_data #define __pyx_n_s_debug __pyx_mstate_global->__pyx_n_s_debug #define __pyx_n_s_decode __pyx_mstate_global->__pyx_n_s_decode #define __pyx_n_s_default_options __pyx_mstate_global->__pyx_n_s_default_options #define __pyx_n_u_default_permissions __pyx_mstate_global->__pyx_n_u_default_permissions #define __pyx_n_s_deleted __pyx_mstate_global->__pyx_n_s_deleted #define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict #define __pyx_n_s_dict_2 __pyx_mstate_global->__pyx_n_s_dict_2 #define __pyx_n_s_direct_io __pyx_mstate_global->__pyx_n_s_direct_io #define __pyx_n_s_dirp __pyx_mstate_global->__pyx_n_s_dirp #define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable #define __pyx_n_s_e __pyx_mstate_global->__pyx_n_s_e #define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable #define __pyx_n_s_enable_acl __pyx_mstate_global->__pyx_n_s_enable_acl #define __pyx_n_s_enable_writeback_cache __pyx_mstate_global->__pyx_n_s_enable_writeback_cache #define __pyx_n_s_encode __pyx_mstate_global->__pyx_n_s_encode #define __pyx_n_s_enter __pyx_mstate_global->__pyx_n_s_enter #define __pyx_n_s_entry __pyx_mstate_global->__pyx_n_s_entry #define __pyx_n_u_entry_timeout __pyx_mstate_global->__pyx_n_u_entry_timeout #define __pyx_n_s_enumerate __pyx_mstate_global->__pyx_n_s_enumerate #define __pyx_n_s_errno __pyx_mstate_global->__pyx_n_s_errno #define __pyx_kp_u_errno_d __pyx_mstate_global->__pyx_kp_u_errno_d #define __pyx_n_s_error __pyx_mstate_global->__pyx_n_s_error #define __pyx_n_s_exc __pyx_mstate_global->__pyx_n_s_exc #define __pyx_n_s_exception __pyx_mstate_global->__pyx_n_s_exception #define __pyx_n_s_exit __pyx_mstate_global->__pyx_n_s_exit #define __pyx_n_s_f_args __pyx_mstate_global->__pyx_n_s_f_args #define __pyx_n_u_f_bavail __pyx_mstate_global->__pyx_n_u_f_bavail #define __pyx_n_u_f_bfree __pyx_mstate_global->__pyx_n_u_f_bfree #define __pyx_n_u_f_blocks __pyx_mstate_global->__pyx_n_u_f_blocks #define __pyx_n_u_f_bsize __pyx_mstate_global->__pyx_n_u_f_bsize #define __pyx_n_u_f_favail __pyx_mstate_global->__pyx_n_u_f_favail #define __pyx_n_u_f_ffree __pyx_mstate_global->__pyx_n_u_f_ffree #define __pyx_n_u_f_files __pyx_mstate_global->__pyx_n_u_f_files #define __pyx_n_u_f_frsize __pyx_mstate_global->__pyx_n_u_f_frsize #define __pyx_n_u_f_namemax __pyx_mstate_global->__pyx_n_u_f_namemax #define __pyx_n_s_fd __pyx_mstate_global->__pyx_n_s_fd #define __pyx_n_s_fh __pyx_mstate_global->__pyx_n_s_fh #define __pyx_n_s_fi __pyx_mstate_global->__pyx_n_s_fi #define __pyx_n_s_fields __pyx_mstate_global->__pyx_n_s_fields #define __pyx_n_s_flags __pyx_mstate_global->__pyx_n_s_flags #define __pyx_n_s_flush __pyx_mstate_global->__pyx_n_s_flush #define __pyx_n_s_forget __pyx_mstate_global->__pyx_n_s_forget #define __pyx_n_s_fse __pyx_mstate_global->__pyx_n_s_fse #define __pyx_n_s_fsync __pyx_mstate_global->__pyx_n_s_fsync #define __pyx_n_s_fsyncdir __pyx_mstate_global->__pyx_n_s_fsyncdir #define __pyx_n_s_fuse_access_async __pyx_mstate_global->__pyx_n_s_fuse_access_async #define __pyx_kp_u_fuse_access_fuse_reply__failed_w __pyx_mstate_global->__pyx_kp_u_fuse_access_fuse_reply__failed_w #define __pyx_kp_u_fuse_buf_copy_failed_with __pyx_mstate_global->__pyx_kp_u_fuse_buf_copy_failed_with #define __pyx_n_s_fuse_create_async __pyx_mstate_global->__pyx_n_s_fuse_create_async #define __pyx_kp_u_fuse_create_fuse_reply__failed_w __pyx_mstate_global->__pyx_kp_u_fuse_create_fuse_reply__failed_w #define __pyx_n_s_fuse_flush_async __pyx_mstate_global->__pyx_n_s_fuse_flush_async #define __pyx_kp_u_fuse_flush_fuse_reply__failed_wi __pyx_mstate_global->__pyx_kp_u_fuse_flush_fuse_reply__failed_wi #define __pyx_n_s_fuse_fsync_async __pyx_mstate_global->__pyx_n_s_fuse_fsync_async #define __pyx_kp_u_fuse_fsync_fuse_reply__failed_wi __pyx_mstate_global->__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi #define __pyx_n_s_fuse_fsyncdir_async __pyx_mstate_global->__pyx_n_s_fuse_fsyncdir_async #define __pyx_kp_u_fuse_fsyncdir_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed #define __pyx_n_s_fuse_getattr_async __pyx_mstate_global->__pyx_n_s_fuse_getattr_async #define __pyx_kp_u_fuse_getattr_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_getattr_fuse_reply__failed #define __pyx_n_s_fuse_getxattr_async __pyx_mstate_global->__pyx_n_s_fuse_getxattr_async #define __pyx_kp_u_fuse_getxattr_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_getxattr_fuse_reply__failed #define __pyx_n_s_fuse_link_async __pyx_mstate_global->__pyx_n_s_fuse_link_async #define __pyx_kp_u_fuse_link_fuse_reply__failed_wit __pyx_mstate_global->__pyx_kp_u_fuse_link_fuse_reply__failed_wit #define __pyx_n_s_fuse_listxattr_async __pyx_mstate_global->__pyx_n_s_fuse_listxattr_async #define __pyx_kp_u_fuse_listxattr_fuse_reply__faile __pyx_mstate_global->__pyx_kp_u_fuse_listxattr_fuse_reply__faile #define __pyx_n_s_fuse_lookup_async __pyx_mstate_global->__pyx_n_s_fuse_lookup_async #define __pyx_kp_u_fuse_lookup_fuse_reply__failed_w __pyx_mstate_global->__pyx_kp_u_fuse_lookup_fuse_reply__failed_w #define __pyx_kp_u_fuse_lowlevel_notify_delete_retu __pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_delete_retu #define __pyx_kp_u_fuse_lowlevel_notify_inval_entry __pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_inval_entry #define __pyx_kp_u_fuse_lowlevel_notify_inval_inode __pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_inval_inode #define __pyx_kp_u_fuse_lowlevel_notify_store_retur __pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_store_retur #define __pyx_n_s_fuse_mkdir_async __pyx_mstate_global->__pyx_n_s_fuse_mkdir_async #define __pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi __pyx_mstate_global->__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi #define __pyx_n_s_fuse_mknod_async __pyx_mstate_global->__pyx_n_s_fuse_mknod_async #define __pyx_kp_u_fuse_mknod_fuse_reply__failed_wi __pyx_mstate_global->__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi #define __pyx_n_s_fuse_open_async __pyx_mstate_global->__pyx_n_s_fuse_open_async #define __pyx_n_s_fuse_opendir_async __pyx_mstate_global->__pyx_n_s_fuse_opendir_async #define __pyx_kp_u_fuse_opendir_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_opendir_fuse_reply__failed #define __pyx_n_s_fuse_read_async __pyx_mstate_global->__pyx_n_s_fuse_read_async #define __pyx_kp_u_fuse_read_fuse_reply__failed_wit __pyx_mstate_global->__pyx_kp_u_fuse_read_fuse_reply__failed_wit #define __pyx_n_s_fuse_readdirplus_async __pyx_mstate_global->__pyx_n_s_fuse_readdirplus_async #define __pyx_kp_u_fuse_readdirplus_fuse_reply__fai __pyx_mstate_global->__pyx_kp_u_fuse_readdirplus_fuse_reply__fai #define __pyx_n_s_fuse_readlink_async __pyx_mstate_global->__pyx_n_s_fuse_readlink_async #define __pyx_kp_u_fuse_readlink_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_readlink_fuse_reply__failed #define __pyx_n_s_fuse_release_async __pyx_mstate_global->__pyx_n_s_fuse_release_async #define __pyx_kp_u_fuse_release_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_release_fuse_reply__failed #define __pyx_n_s_fuse_releasedir_async __pyx_mstate_global->__pyx_n_s_fuse_releasedir_async #define __pyx_kp_u_fuse_releasedir_fuse_reply__fail __pyx_mstate_global->__pyx_kp_u_fuse_releasedir_fuse_reply__fail #define __pyx_n_s_fuse_removexattr_async __pyx_mstate_global->__pyx_n_s_fuse_removexattr_async #define __pyx_kp_u_fuse_removexattr_fuse_reply__fai __pyx_mstate_global->__pyx_kp_u_fuse_removexattr_fuse_reply__fai #define __pyx_n_s_fuse_rename_async __pyx_mstate_global->__pyx_n_s_fuse_rename_async #define __pyx_kp_u_fuse_rename_fuse_reply__failed_w __pyx_mstate_global->__pyx_kp_u_fuse_rename_fuse_reply__failed_w #define __pyx_n_s_fuse_rmdir_async __pyx_mstate_global->__pyx_n_s_fuse_rmdir_async #define __pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi __pyx_mstate_global->__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi #define __pyx_kp_u_fuse_session_mount_failed __pyx_mstate_global->__pyx_kp_u_fuse_session_mount_failed #define __pyx_kp_u_fuse_session_new_failed __pyx_mstate_global->__pyx_kp_u_fuse_session_new_failed #define __pyx_kp_u_fuse_session_receive_buf_failed __pyx_mstate_global->__pyx_kp_u_fuse_session_receive_buf_failed #define __pyx_n_s_fuse_setattr_async __pyx_mstate_global->__pyx_n_s_fuse_setattr_async #define __pyx_kp_u_fuse_setattr_clock_gettime_CLOCK __pyx_mstate_global->__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK #define __pyx_kp_u_fuse_setattr_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_setattr_fuse_reply__failed #define __pyx_n_s_fuse_setxattr_async __pyx_mstate_global->__pyx_n_s_fuse_setxattr_async #define __pyx_kp_u_fuse_setxattr_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_setxattr_fuse_reply__failed #define __pyx_n_u_fuse_stacktrace __pyx_mstate_global->__pyx_n_u_fuse_stacktrace #define __pyx_n_s_fuse_statfs_async __pyx_mstate_global->__pyx_n_s_fuse_statfs_async #define __pyx_kp_u_fuse_statfs_fuse_reply__failed_w __pyx_mstate_global->__pyx_kp_u_fuse_statfs_fuse_reply__failed_w #define __pyx_n_s_fuse_symlink_async __pyx_mstate_global->__pyx_n_s_fuse_symlink_async #define __pyx_kp_u_fuse_symlink_fuse_reply__failed __pyx_mstate_global->__pyx_kp_u_fuse_symlink_fuse_reply__failed #define __pyx_n_s_fuse_unlink_async __pyx_mstate_global->__pyx_n_s_fuse_unlink_async #define __pyx_kp_u_fuse_unlink_fuse_reply__failed_w __pyx_mstate_global->__pyx_kp_u_fuse_unlink_fuse_reply__failed_w #define __pyx_n_s_fuse_write_async __pyx_mstate_global->__pyx_n_s_fuse_write_async #define __pyx_n_s_fuse_write_buf_async __pyx_mstate_global->__pyx_n_s_fuse_write_buf_async #define __pyx_kp_u_fuse_write_buf_fuse_reply__faile __pyx_mstate_global->__pyx_kp_u_fuse_write_buf_fuse_reply__faile #define __pyx_kp_u_fuse_write_fuse_reply__failed_wi __pyx_mstate_global->__pyx_kp_u_fuse_write_fuse_reply__failed_wi #define __pyx_n_s_g __pyx_mstate_global->__pyx_n_s_g #define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc #define __pyx_n_u_generation __pyx_mstate_global->__pyx_n_u_generation #define __pyx_n_s_get __pyx_mstate_global->__pyx_n_s_get #define __pyx_n_s_getLogger __pyx_mstate_global->__pyx_n_s_getLogger #define __pyx_n_s_get_sup_groups __pyx_mstate_global->__pyx_n_s_get_sup_groups #define __pyx_n_s_getattr __pyx_mstate_global->__pyx_n_s_getattr #define __pyx_n_s_getfilesystemencoding __pyx_mstate_global->__pyx_n_s_getfilesystemencoding #define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate #define __pyx_n_s_getxattr __pyx_mstate_global->__pyx_n_s_getxattr #define __pyx_n_s_gids __pyx_mstate_global->__pyx_n_s_gids #define __pyx_n_s_ignore_enoent __pyx_mstate_global->__pyx_n_s_ignore_enoent #define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import #define __pyx_n_s_init __pyx_mstate_global->__pyx_n_s_init #define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing #define __pyx_n_s_ino __pyx_mstate_global->__pyx_n_s_ino #define __pyx_n_s_inode __pyx_mstate_global->__pyx_n_s_inode #define __pyx_n_s_inode_p __pyx_mstate_global->__pyx_n_s_inode_p #define __pyx_n_s_invalidate_entry __pyx_mstate_global->__pyx_n_s_invalidate_entry #define __pyx_n_s_invalidate_entry_async __pyx_mstate_global->__pyx_n_s_invalidate_entry_async #define __pyx_n_s_invalidate_inode __pyx_mstate_global->__pyx_n_s_invalidate_inode #define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine #define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled #define __pyx_n_s_items __pyx_mstate_global->__pyx_n_s_items #define __pyx_n_s_join __pyx_mstate_global->__pyx_n_s_join #define __pyx_n_s_k __pyx_mstate_global->__pyx_n_s_k #define __pyx_n_s_keep_cache __pyx_mstate_global->__pyx_n_s_keep_cache #define __pyx_n_s_len __pyx_mstate_global->__pyx_n_s_len #define __pyx_n_s_len_s __pyx_mstate_global->__pyx_n_s_len_s #define __pyx_n_s_line __pyx_mstate_global->__pyx_n_s_line #define __pyx_n_s_link __pyx_mstate_global->__pyx_n_s_link #define __pyx_n_s_listdir __pyx_mstate_global->__pyx_n_s_listdir #define __pyx_n_s_listxattr __pyx_mstate_global->__pyx_n_s_listxattr #define __pyx_n_s_log __pyx_mstate_global->__pyx_n_s_log #define __pyx_n_s_logging __pyx_mstate_global->__pyx_n_s_logging #define __pyx_n_s_lookup __pyx_mstate_global->__pyx_n_s_lookup #define __pyx_n_s_lowlevel __pyx_mstate_global->__pyx_n_s_lowlevel #define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main #define __pyx_n_s_main_2 __pyx_mstate_global->__pyx_n_s_main_2 #define __pyx_n_s_mask __pyx_mstate_global->__pyx_n_s_mask #define __pyx_n_s_max_tasks __pyx_mstate_global->__pyx_n_s_max_tasks #define __pyx_n_s_min_tasks __pyx_mstate_global->__pyx_n_s_min_tasks #define __pyx_n_s_mkdir __pyx_mstate_global->__pyx_n_s_mkdir #define __pyx_n_s_mknod __pyx_mstate_global->__pyx_n_s_mknod #define __pyx_n_s_mountpoint __pyx_mstate_global->__pyx_n_s_mountpoint #define __pyx_kp_u_mountpoint__argument_must_be_of __pyx_mstate_global->__pyx_kp_u_mountpoint__argument_must_be_of #define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name #define __pyx_n_s_name_2 __pyx_mstate_global->__pyx_n_s_name_2 #define __pyx_kp_u_name_argument_must_be_of_type_s __pyx_mstate_global->__pyx_kp_u_name_argument_must_be_of_type_s #define __pyx_n_s_name_b __pyx_mstate_global->__pyx_n_s_name_b #define __pyx_n_s_names __pyx_mstate_global->__pyx_n_s_names #define __pyx_n_s_namespace __pyx_mstate_global->__pyx_n_s_namespace #define __pyx_kp_u_namespace_parameter_must_be_sys __pyx_mstate_global->__pyx_kp_u_namespace_parameter_must_be_sys #define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new #define __pyx_n_s_newname __pyx_mstate_global->__pyx_n_s_newname #define __pyx_n_s_newparent __pyx_mstate_global->__pyx_n_s_newparent #define __pyx_n_s_next_id __pyx_mstate_global->__pyx_n_s_next_id #define __pyx_kp_s_no_default___reduce___due_to_non __pyx_mstate_global->__pyx_kp_s_no_default___reduce___due_to_non #define __pyx_n_s_nonseekable __pyx_mstate_global->__pyx_n_s_nonseekable #define __pyx_n_s_notify_closing __pyx_mstate_global->__pyx_n_s_notify_closing #define __pyx_n_s_notify_loop __pyx_mstate_global->__pyx_n_s_notify_loop #define __pyx_n_s_notify_store __pyx_mstate_global->__pyx_n_s_notify_store #define __pyx_n_s_now __pyx_mstate_global->__pyx_n_s_now #define __pyx_n_s_nursery __pyx_mstate_global->__pyx_n_s_nursery #define __pyx_kp_b_o __pyx_mstate_global->__pyx_kp_b_o #define __pyx_n_s_off __pyx_mstate_global->__pyx_n_s_off #define __pyx_n_s_offset __pyx_mstate_global->__pyx_n_s_offset #define __pyx_n_s_open __pyx_mstate_global->__pyx_n_s_open #define __pyx_n_s_open_nursery __pyx_mstate_global->__pyx_n_s_open_nursery #define __pyx_n_s_opendir __pyx_mstate_global->__pyx_n_s_opendir #define __pyx_n_s_ops __pyx_mstate_global->__pyx_n_s_ops #define __pyx_n_s_options __pyx_mstate_global->__pyx_n_s_options #define __pyx_n_s_os __pyx_mstate_global->__pyx_n_s_os #define __pyx_n_s_os_path __pyx_mstate_global->__pyx_n_s_os_path #define __pyx_n_s_path __pyx_mstate_global->__pyx_n_s_path #define __pyx_kp_u_path_argument_must_be_of_type_s __pyx_mstate_global->__pyx_kp_u_path_argument_must_be_of_type_s #define __pyx_n_s_path_b __pyx_mstate_global->__pyx_n_s_path_b #define __pyx_n_s_pbuf __pyx_mstate_global->__pyx_n_s_pbuf #define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle #define __pyx_n_s_pid __pyx_mstate_global->__pyx_n_s_pid #define __pyx_kp_u_proc_d_status __pyx_mstate_global->__pyx_kp_u_proc_d_status #define __pyx_n_s_put __pyx_mstate_global->__pyx_n_s_put #define __pyx_kp_u_py_retval_was_not_awaited_please __pyx_mstate_global->__pyx_kp_u_py_retval_was_not_awaited_please #define __pyx_n_s_pybuf __pyx_mstate_global->__pyx_n_s_pybuf #define __pyx_n_b_pyfuse3 __pyx_mstate_global->__pyx_n_b_pyfuse3 #define __pyx_n_s_pyfuse3 __pyx_mstate_global->__pyx_n_s_pyfuse3 #define __pyx_n_u_pyfuse3 __pyx_mstate_global->__pyx_n_u_pyfuse3 #define __pyx_n_s_pyfuse3_2 __pyx_mstate_global->__pyx_n_s_pyfuse3_2 #define __pyx_kp_u_pyfuse_02d __pyx_mstate_global->__pyx_kp_u_pyfuse_02d #define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError #define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum #define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result #define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state #define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type #define __pyx_n_s_pyx_unpickle_RequestContext __pyx_mstate_global->__pyx_n_s_pyx_unpickle_RequestContext #define __pyx_n_s_pyx_unpickle__WorkerData __pyx_mstate_global->__pyx_n_s_pyx_unpickle__WorkerData #define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable #define __pyx_n_s_queue __pyx_mstate_global->__pyx_n_s_queue #define __pyx_n_u_r __pyx_mstate_global->__pyx_n_u_r #define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range #define __pyx_n_s_read __pyx_mstate_global->__pyx_n_s_read #define __pyx_n_s_readdir __pyx_mstate_global->__pyx_n_s_readdir #define __pyx_n_s_readdir_reply __pyx_mstate_global->__pyx_n_s_readdir_reply #define __pyx_n_s_readlink __pyx_mstate_global->__pyx_n_s_readlink #define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce #define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython #define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex #define __pyx_n_s_release __pyx_mstate_global->__pyx_n_s_release #define __pyx_n_s_releasedir __pyx_mstate_global->__pyx_n_s_releasedir #define __pyx_n_s_removexattr __pyx_mstate_global->__pyx_n_s_removexattr #define __pyx_n_s_rename __pyx_mstate_global->__pyx_n_s_rename #define __pyx_n_s_req __pyx_mstate_global->__pyx_n_s_req #define __pyx_n_s_res __pyx_mstate_global->__pyx_n_s_res #define __pyx_n_s_ret __pyx_mstate_global->__pyx_n_s_ret #define __pyx_n_s_rmdir __pyx_mstate_global->__pyx_n_s_rmdir #define __pyx_kp_u_s_No_tasks_waiting_starting_ano __pyx_mstate_global->__pyx_kp_u_s_No_tasks_waiting_starting_ano #define __pyx_kp_u_s_terminated __pyx_mstate_global->__pyx_kp_u_s_terminated #define __pyx_kp_u_s_too_many_idle_tasks_d_total_d __pyx_mstate_global->__pyx_kp_u_s_too_many_idle_tasks_d_total_d #define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self #define __pyx_kp_s_self_req_cannot_be_converted_to __pyx_mstate_global->__pyx_kp_s_self_req_cannot_be_converted_to #define __pyx_n_s_send __pyx_mstate_global->__pyx_n_s_send #define __pyx_n_s_session_loop __pyx_mstate_global->__pyx_n_s_session_loop #define __pyx_n_s_setattr __pyx_mstate_global->__pyx_n_s_setattr #define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate #define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython #define __pyx_n_s_setxattr __pyx_mstate_global->__pyx_n_s_setxattr #define __pyx_n_s_size_guess __pyx_mstate_global->__pyx_n_s_size_guess #define __pyx_n_s_slen __pyx_mstate_global->__pyx_n_s_slen #define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec #define __pyx_n_s_split __pyx_mstate_global->__pyx_n_s_split #define __pyx_kp_s_src_handlers_pxi __pyx_mstate_global->__pyx_kp_s_src_handlers_pxi #define __pyx_kp_s_src_internal_pxi __pyx_mstate_global->__pyx_kp_s_src_internal_pxi #define __pyx_kp_s_src_pyfuse3_pyx __pyx_mstate_global->__pyx_kp_s_src_pyfuse3_pyx #define __pyx_n_u_st_atime_ns __pyx_mstate_global->__pyx_n_u_st_atime_ns #define __pyx_n_u_st_birthtime_ns __pyx_mstate_global->__pyx_n_u_st_birthtime_ns #define __pyx_n_u_st_blksize __pyx_mstate_global->__pyx_n_u_st_blksize #define __pyx_n_u_st_blocks __pyx_mstate_global->__pyx_n_u_st_blocks #define __pyx_n_u_st_ctime_ns __pyx_mstate_global->__pyx_n_u_st_ctime_ns #define __pyx_n_u_st_gid __pyx_mstate_global->__pyx_n_u_st_gid #define __pyx_n_u_st_ino __pyx_mstate_global->__pyx_n_u_st_ino #define __pyx_n_u_st_mode __pyx_mstate_global->__pyx_n_u_st_mode #define __pyx_n_u_st_mtime_ns __pyx_mstate_global->__pyx_n_u_st_mtime_ns #define __pyx_n_u_st_nlink __pyx_mstate_global->__pyx_n_u_st_nlink #define __pyx_n_u_st_rdev __pyx_mstate_global->__pyx_n_u_st_rdev #define __pyx_n_u_st_size __pyx_mstate_global->__pyx_n_u_st_size #define __pyx_n_u_st_uid __pyx_mstate_global->__pyx_n_u_st_uid #define __pyx_n_s_stacktrace __pyx_mstate_global->__pyx_n_s_stacktrace #define __pyx_n_s_start __pyx_mstate_global->__pyx_n_s_start #define __pyx_n_s_start_soon __pyx_mstate_global->__pyx_n_s_start_soon #define __pyx_n_s_startswith __pyx_mstate_global->__pyx_n_s_startswith #define __pyx_n_s_state __pyx_mstate_global->__pyx_n_s_state #define __pyx_n_s_statfs __pyx_mstate_global->__pyx_n_s_statfs #define __pyx_n_s_stats __pyx_mstate_global->__pyx_n_s_stats #define __pyx_n_s_strerror __pyx_mstate_global->__pyx_n_s_strerror #define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource #define __pyx_n_s_supports_dot_lookup __pyx_mstate_global->__pyx_n_s_supports_dot_lookup #define __pyx_n_u_surrogateescape __pyx_mstate_global->__pyx_n_u_surrogateescape #define __pyx_n_s_symlink __pyx_mstate_global->__pyx_n_s_symlink #define __pyx_n_s_syncfs __pyx_mstate_global->__pyx_n_s_syncfs #define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys #define __pyx_n_u_system __pyx_mstate_global->__pyx_n_u_system #define __pyx_n_s_t __pyx_mstate_global->__pyx_n_s_t #define __pyx_n_s_target __pyx_mstate_global->__pyx_n_s_target #define __pyx_n_s_terminate __pyx_mstate_global->__pyx_n_s_terminate #define __pyx_kp_u_terminating_notify_thread __pyx_mstate_global->__pyx_kp_u_terminating_notify_thread #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test #define __pyx_n_s_threading __pyx_mstate_global->__pyx_n_s_threading #define __pyx_n_s_throw __pyx_mstate_global->__pyx_n_s_throw #define __pyx_n_s_tmp __pyx_mstate_global->__pyx_n_s_tmp #define __pyx_n_s_to_set __pyx_mstate_global->__pyx_n_s_to_set #define __pyx_n_s_token __pyx_mstate_global->__pyx_n_s_token #define __pyx_n_s_trio __pyx_mstate_global->__pyx_n_s_trio #define __pyx_n_s_trio_token __pyx_mstate_global->__pyx_n_s_trio_token #define __pyx_n_s_typing __pyx_mstate_global->__pyx_n_s_typing #define __pyx_kp_u_unknown_flag_s_o __pyx_mstate_global->__pyx_kp_u_unknown_flag_s_o #define __pyx_n_s_unlink __pyx_mstate_global->__pyx_n_s_unlink #define __pyx_n_s_unmount __pyx_mstate_global->__pyx_n_s_unmount #define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update #define __pyx_kp_u_us_ascii __pyx_mstate_global->__pyx_kp_u_us_ascii #define __pyx_n_s_use_setstate __pyx_mstate_global->__pyx_n_s_use_setstate #define __pyx_n_u_user __pyx_mstate_global->__pyx_n_u_user #define __pyx_n_s_v __pyx_mstate_global->__pyx_n_s_v #define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value #define __pyx_n_s_version __pyx_mstate_global->__pyx_n_s_version #define __pyx_n_s_wait_fuse_readable __pyx_mstate_global->__pyx_n_s_wait_fuse_readable #define __pyx_n_s_wait_readable __pyx_mstate_global->__pyx_n_s_wait_readable #define __pyx_n_s_write __pyx_mstate_global->__pyx_n_s_write #define __pyx_n_s_x __pyx_mstate_global->__pyx_n_s_x #define __pyx_int_0 __pyx_mstate_global->__pyx_int_0 #define __pyx_int_1 __pyx_mstate_global->__pyx_int_1 #define __pyx_int_35895208 __pyx_mstate_global->__pyx_int_35895208 #define __pyx_int_44617694 __pyx_mstate_global->__pyx_int_44617694 #define __pyx_int_144710093 __pyx_mstate_global->__pyx_int_144710093 #define __pyx_int_154557683 __pyx_mstate_global->__pyx_int_154557683 #define __pyx_int_240542287 __pyx_mstate_global->__pyx_int_240542287 #define __pyx_int_244161614 __pyx_mstate_global->__pyx_int_244161614 #define __pyx_int_1000000000 __pyx_mstate_global->__pyx_int_1000000000 #define __pyx_tuple_ __pyx_mstate_global->__pyx_tuple_ #define __pyx_slice__45 __pyx_mstate_global->__pyx_slice__45 #define __pyx_tuple__15 __pyx_mstate_global->__pyx_tuple__15 #define __pyx_tuple__34 __pyx_mstate_global->__pyx_tuple__34 #define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36 #define __pyx_tuple__37 __pyx_mstate_global->__pyx_tuple__37 #define __pyx_tuple__38 __pyx_mstate_global->__pyx_tuple__38 #define __pyx_tuple__39 __pyx_mstate_global->__pyx_tuple__39 #define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40 #define __pyx_tuple__41 __pyx_mstate_global->__pyx_tuple__41 #define __pyx_tuple__42 __pyx_mstate_global->__pyx_tuple__42 #define __pyx_tuple__44 __pyx_mstate_global->__pyx_tuple__44 #define __pyx_tuple__46 __pyx_mstate_global->__pyx_tuple__46 #define __pyx_tuple__48 __pyx_mstate_global->__pyx_tuple__48 #define __pyx_tuple__51 __pyx_mstate_global->__pyx_tuple__51 #define __pyx_tuple__52 __pyx_mstate_global->__pyx_tuple__52 #define __pyx_tuple__53 __pyx_mstate_global->__pyx_tuple__53 #define __pyx_tuple__55 __pyx_mstate_global->__pyx_tuple__55 #define __pyx_tuple__57 __pyx_mstate_global->__pyx_tuple__57 #define __pyx_tuple__58 __pyx_mstate_global->__pyx_tuple__58 #define __pyx_tuple__59 __pyx_mstate_global->__pyx_tuple__59 #define __pyx_tuple__60 __pyx_mstate_global->__pyx_tuple__60 #define __pyx_tuple__61 __pyx_mstate_global->__pyx_tuple__61 #define __pyx_tuple__62 __pyx_mstate_global->__pyx_tuple__62 #define __pyx_tuple__63 __pyx_mstate_global->__pyx_tuple__63 #define __pyx_tuple__64 __pyx_mstate_global->__pyx_tuple__64 #define __pyx_tuple__65 __pyx_mstate_global->__pyx_tuple__65 #define __pyx_tuple__66 __pyx_mstate_global->__pyx_tuple__66 #define __pyx_tuple__67 __pyx_mstate_global->__pyx_tuple__67 #define __pyx_tuple__68 __pyx_mstate_global->__pyx_tuple__68 #define __pyx_tuple__69 __pyx_mstate_global->__pyx_tuple__69 #define __pyx_tuple__70 __pyx_mstate_global->__pyx_tuple__70 #define __pyx_tuple__71 __pyx_mstate_global->__pyx_tuple__71 #define __pyx_tuple__74 __pyx_mstate_global->__pyx_tuple__74 #define __pyx_tuple__75 __pyx_mstate_global->__pyx_tuple__75 #define __pyx_tuple__76 __pyx_mstate_global->__pyx_tuple__76 #define __pyx_tuple__77 __pyx_mstate_global->__pyx_tuple__77 #define __pyx_tuple__78 __pyx_mstate_global->__pyx_tuple__78 #define __pyx_tuple__79 __pyx_mstate_global->__pyx_tuple__79 #define __pyx_tuple__80 __pyx_mstate_global->__pyx_tuple__80 #define __pyx_tuple__81 __pyx_mstate_global->__pyx_tuple__81 #define __pyx_tuple__83 __pyx_mstate_global->__pyx_tuple__83 #define __pyx_tuple__86 __pyx_mstate_global->__pyx_tuple__86 #define __pyx_tuple__93 __pyx_mstate_global->__pyx_tuple__93 #define __pyx_tuple__95 __pyx_mstate_global->__pyx_tuple__95 #define __pyx_codeobj__2 __pyx_mstate_global->__pyx_codeobj__2 #define __pyx_codeobj__3 __pyx_mstate_global->__pyx_codeobj__3 #define __pyx_codeobj__4 __pyx_mstate_global->__pyx_codeobj__4 #define __pyx_codeobj__5 __pyx_mstate_global->__pyx_codeobj__5 #define __pyx_codeobj__6 __pyx_mstate_global->__pyx_codeobj__6 #define __pyx_codeobj__7 __pyx_mstate_global->__pyx_codeobj__7 #define __pyx_codeobj__8 __pyx_mstate_global->__pyx_codeobj__8 #define __pyx_codeobj__9 __pyx_mstate_global->__pyx_codeobj__9 #define __pyx_tuple__107 __pyx_mstate_global->__pyx_tuple__107 #define __pyx_tuple__109 __pyx_mstate_global->__pyx_tuple__109 #define __pyx_tuple__111 __pyx_mstate_global->__pyx_tuple__111 #define __pyx_tuple__113 __pyx_mstate_global->__pyx_tuple__113 #define __pyx_tuple__114 __pyx_mstate_global->__pyx_tuple__114 #define __pyx_tuple__116 __pyx_mstate_global->__pyx_tuple__116 #define __pyx_tuple__117 __pyx_mstate_global->__pyx_tuple__117 #define __pyx_tuple__119 __pyx_mstate_global->__pyx_tuple__119 #define __pyx_tuple__121 __pyx_mstate_global->__pyx_tuple__121 #define __pyx_tuple__123 __pyx_mstate_global->__pyx_tuple__123 #define __pyx_tuple__124 __pyx_mstate_global->__pyx_tuple__124 #define __pyx_tuple__126 __pyx_mstate_global->__pyx_tuple__126 #define __pyx_tuple__127 __pyx_mstate_global->__pyx_tuple__127 #define __pyx_tuple__129 __pyx_mstate_global->__pyx_tuple__129 #define __pyx_tuple__131 __pyx_mstate_global->__pyx_tuple__131 #define __pyx_tuple__132 __pyx_mstate_global->__pyx_tuple__132 #define __pyx_tuple__134 __pyx_mstate_global->__pyx_tuple__134 #define __pyx_tuple__136 __pyx_mstate_global->__pyx_tuple__136 #define __pyx_tuple__138 __pyx_mstate_global->__pyx_tuple__138 #define __pyx_codeobj__10 __pyx_mstate_global->__pyx_codeobj__10 #define __pyx_codeobj__11 __pyx_mstate_global->__pyx_codeobj__11 #define __pyx_codeobj__12 __pyx_mstate_global->__pyx_codeobj__12 #define __pyx_codeobj__13 __pyx_mstate_global->__pyx_codeobj__13 #define __pyx_codeobj__14 __pyx_mstate_global->__pyx_codeobj__14 #define __pyx_codeobj__16 __pyx_mstate_global->__pyx_codeobj__16 #define __pyx_codeobj__17 __pyx_mstate_global->__pyx_codeobj__17 #define __pyx_codeobj__18 __pyx_mstate_global->__pyx_codeobj__18 #define __pyx_codeobj__19 __pyx_mstate_global->__pyx_codeobj__19 #define __pyx_codeobj__20 __pyx_mstate_global->__pyx_codeobj__20 #define __pyx_codeobj__21 __pyx_mstate_global->__pyx_codeobj__21 #define __pyx_codeobj__22 __pyx_mstate_global->__pyx_codeobj__22 #define __pyx_codeobj__23 __pyx_mstate_global->__pyx_codeobj__23 #define __pyx_codeobj__24 __pyx_mstate_global->__pyx_codeobj__24 #define __pyx_codeobj__25 __pyx_mstate_global->__pyx_codeobj__25 #define __pyx_codeobj__26 __pyx_mstate_global->__pyx_codeobj__26 #define __pyx_codeobj__27 __pyx_mstate_global->__pyx_codeobj__27 #define __pyx_codeobj__28 __pyx_mstate_global->__pyx_codeobj__28 #define __pyx_codeobj__30 __pyx_mstate_global->__pyx_codeobj__30 #define __pyx_codeobj__31 __pyx_mstate_global->__pyx_codeobj__31 #define __pyx_codeobj__32 __pyx_mstate_global->__pyx_codeobj__32 #define __pyx_codeobj__33 __pyx_mstate_global->__pyx_codeobj__33 #define __pyx_codeobj__35 __pyx_mstate_global->__pyx_codeobj__35 #define __pyx_codeobj__43 __pyx_mstate_global->__pyx_codeobj__43 #define __pyx_codeobj__54 __pyx_mstate_global->__pyx_codeobj__54 #define __pyx_codeobj__56 __pyx_mstate_global->__pyx_codeobj__56 #define __pyx_codeobj__72 __pyx_mstate_global->__pyx_codeobj__72 #define __pyx_codeobj__73 __pyx_mstate_global->__pyx_codeobj__73 #define __pyx_codeobj__82 __pyx_mstate_global->__pyx_codeobj__82 #define __pyx_codeobj__84 __pyx_mstate_global->__pyx_codeobj__84 #define __pyx_codeobj__85 __pyx_mstate_global->__pyx_codeobj__85 #define __pyx_codeobj__87 __pyx_mstate_global->__pyx_codeobj__87 #define __pyx_codeobj__88 __pyx_mstate_global->__pyx_codeobj__88 #define __pyx_codeobj__89 __pyx_mstate_global->__pyx_codeobj__89 #define __pyx_codeobj__90 __pyx_mstate_global->__pyx_codeobj__90 #define __pyx_codeobj__91 __pyx_mstate_global->__pyx_codeobj__91 #define __pyx_codeobj__92 __pyx_mstate_global->__pyx_codeobj__92 #define __pyx_codeobj__94 __pyx_mstate_global->__pyx_codeobj__94 #define __pyx_codeobj__96 __pyx_mstate_global->__pyx_codeobj__96 #define __pyx_codeobj__97 __pyx_mstate_global->__pyx_codeobj__97 #define __pyx_codeobj__98 __pyx_mstate_global->__pyx_codeobj__98 #define __pyx_codeobj__99 __pyx_mstate_global->__pyx_codeobj__99 #define __pyx_codeobj__100 __pyx_mstate_global->__pyx_codeobj__100 #define __pyx_codeobj__101 __pyx_mstate_global->__pyx_codeobj__101 #define __pyx_codeobj__102 __pyx_mstate_global->__pyx_codeobj__102 #define __pyx_codeobj__103 __pyx_mstate_global->__pyx_codeobj__103 #define __pyx_codeobj__104 __pyx_mstate_global->__pyx_codeobj__104 #define __pyx_codeobj__105 __pyx_mstate_global->__pyx_codeobj__105 #define __pyx_codeobj__106 __pyx_mstate_global->__pyx_codeobj__106 #define __pyx_codeobj__108 __pyx_mstate_global->__pyx_codeobj__108 #define __pyx_codeobj__110 __pyx_mstate_global->__pyx_codeobj__110 #define __pyx_codeobj__112 __pyx_mstate_global->__pyx_codeobj__112 #define __pyx_codeobj__115 __pyx_mstate_global->__pyx_codeobj__115 #define __pyx_codeobj__118 __pyx_mstate_global->__pyx_codeobj__118 #define __pyx_codeobj__120 __pyx_mstate_global->__pyx_codeobj__120 #define __pyx_codeobj__122 __pyx_mstate_global->__pyx_codeobj__122 #define __pyx_codeobj__125 __pyx_mstate_global->__pyx_codeobj__125 #define __pyx_codeobj__128 __pyx_mstate_global->__pyx_codeobj__128 #define __pyx_codeobj__130 __pyx_mstate_global->__pyx_codeobj__130 #define __pyx_codeobj__133 __pyx_mstate_global->__pyx_codeobj__133 #define __pyx_codeobj__135 __pyx_mstate_global->__pyx_codeobj__135 #define __pyx_codeobj__137 __pyx_mstate_global->__pyx_codeobj__137 #define __pyx_codeobj__139 __pyx_mstate_global->__pyx_codeobj__139 #define __pyx_codeobj__140 __pyx_mstate_global->__pyx_codeobj__140 /* #### Code section: module_code ### */ /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_10_Container___reduce_cython__, "_Container.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_10_Container_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_10_Container___reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_10_Container___reduce_cython__(((struct __pyx_obj_7pyfuse3__Container *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10_Container___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._Container.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_10_Container_2__setstate_cython__, "_Container.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_10_Container_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_10_Container_2__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 3, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3._Container.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_10_Container_2__setstate_cython__(((struct __pyx_obj_7pyfuse3__Container *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10_Container_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._Container.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":33 * cdef uint64_t fh * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): # <<<<<<<<<<<<<< * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') */ static void __pyx_f_7pyfuse3_fuse_init(CYTHON_UNUSED void *__pyx_v_userdata, struct fuse_conn_info *__pyx_v_conn) { __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_init", 0); /* "src/handlers.pxi":34 * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): * if not conn.capable & FUSE_CAP_READDIRPLUS: # <<<<<<<<<<<<<< * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) */ __pyx_t_1 = (!((__pyx_v_conn->capable & FUSE_CAP_READDIRPLUS) != 0)); if (unlikely(__pyx_t_1)) { /* "src/handlers.pxi":35 * cdef void fuse_init (void *userdata, fuse_conn_info *conn): * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') # <<<<<<<<<<<<<< * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 35, __pyx_L1_error) /* "src/handlers.pxi":34 * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): * if not conn.capable & FUSE_CAP_READDIRPLUS: # <<<<<<<<<<<<<< * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) */ } /* "src/handlers.pxi":36 * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) # <<<<<<<<<<<<<< * * if (operations.supports_dot_lookup and */ __pyx_v_conn->want = (__pyx_v_conn->want & (~((unsigned int)FUSE_CAP_READDIRPLUS_AUTO))); /* "src/handlers.pxi":38 * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * * if (operations.supports_dot_lookup and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_supports_dot_lookup); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } /* "src/handlers.pxi":39 * * if (operations.supports_dot_lookup and * conn.capable & FUSE_CAP_EXPORT_SUPPORT): # <<<<<<<<<<<<<< * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and */ __pyx_t_3 = ((__pyx_v_conn->capable & FUSE_CAP_EXPORT_SUPPORT) != 0); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; /* "src/handlers.pxi":38 * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * * if (operations.supports_dot_lookup and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT */ if (__pyx_t_1) { /* "src/handlers.pxi":40 * if (operations.supports_dot_lookup and * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT # <<<<<<<<<<<<<< * if (operations.enable_writeback_cache and * conn.capable & FUSE_CAP_WRITEBACK_CACHE): */ __pyx_v_conn->want = (__pyx_v_conn->want | FUSE_CAP_EXPORT_SUPPORT); /* "src/handlers.pxi":38 * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * * if (operations.supports_dot_lookup and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT */ } /* "src/handlers.pxi":41 * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_enable_writeback_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L8_bool_binop_done; } /* "src/handlers.pxi":42 * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and * conn.capable & FUSE_CAP_WRITEBACK_CACHE): # <<<<<<<<<<<<<< * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and */ __pyx_t_3 = ((__pyx_v_conn->capable & FUSE_CAP_WRITEBACK_CACHE) != 0); __pyx_t_1 = __pyx_t_3; __pyx_L8_bool_binop_done:; /* "src/handlers.pxi":41 * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE */ if (__pyx_t_1) { /* "src/handlers.pxi":43 * if (operations.enable_writeback_cache and * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE # <<<<<<<<<<<<<< * if (operations.enable_acl and * conn.capable & FUSE_CAP_POSIX_ACL): */ __pyx_v_conn->want = (__pyx_v_conn->want | FUSE_CAP_WRITEBACK_CACHE); /* "src/handlers.pxi":41 * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE */ } /* "src/handlers.pxi":44 * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_enable_acl); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 44, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } /* "src/handlers.pxi":45 * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and * conn.capable & FUSE_CAP_POSIX_ACL): # <<<<<<<<<<<<<< * conn.want |= FUSE_CAP_POSIX_ACL * */ __pyx_t_3 = ((__pyx_v_conn->capable & FUSE_CAP_POSIX_ACL) != 0); __pyx_t_1 = __pyx_t_3; __pyx_L11_bool_binop_done:; /* "src/handlers.pxi":44 * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL */ if (__pyx_t_1) { /* "src/handlers.pxi":46 * if (operations.enable_acl and * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL # <<<<<<<<<<<<<< * * # Blocking rather than async, in case we decide to let the */ __pyx_v_conn->want = (__pyx_v_conn->want | FUSE_CAP_POSIX_ACL); /* "src/handlers.pxi":44 * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL */ } /* "src/handlers.pxi":50 * # Blocking rather than async, in case we decide to let the * # init handler modify `conn` in the future. * operations.init() # <<<<<<<<<<<<<< * * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/handlers.pxi":33 * cdef uint64_t fh * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): # <<<<<<<<<<<<<< * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_init", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "src/handlers.pxi":52 * operations.init() * * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_lookup(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_lookup", 0); /* "src/handlers.pxi":54 * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, * const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":55 * const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":56 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":57 * c.req = req * c.parent = parent * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_lookup_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_lookup_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 57, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":52 * operations.init() * * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_1fuse_lookup_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_fuse_lookup_async, "fuse_lookup_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_1fuse_lookup_async = {"fuse_lookup_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_1fuse_lookup_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_fuse_lookup_async}; static PyObject *__pyx_pw_7pyfuse3_1fuse_lookup_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_lookup_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 59, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 59, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_lookup_async", 1, 2, 2, 1); __PYX_ERR(1, 59, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_lookup_async") < 0)) __PYX_ERR(1, 59, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_lookup_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 59, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 59, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_fuse_lookup_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_fuse_lookup_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_lookup_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async(__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 59, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_2generator, __pyx_codeobj__2, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_lookup_async, __pyx_n_s_fuse_lookup_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_lookup_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 59, __pyx_L1_error) /* "src/handlers.pxi":63 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.lookup( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":64 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.lookup( * c.parent, name, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":65 * ctx = get_request_context(c.req) * try: * entry = await operations.lookup( # <<<<<<<<<<<<<< * c.parent, name, ctx) * except FUSEError as e: */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_lookup); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 65, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); /* "src/handlers.pxi":66 * try: * entry = await operations.lookup( * c.parent, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 66, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 65, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 65, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } /* "src/handlers.pxi":65 * ctx = get_request_context(c.req) * try: * entry = await operations.lookup( # <<<<<<<<<<<<<< * c.parent, name, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 65, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":64 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.lookup( * c.parent, name, ctx) */ } /* "src/handlers.pxi":70 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":67 * entry = await operations.lookup( * c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(1, 67, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":68 * c.parent, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 68, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 68, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":67 * entry = await operations.lookup( * c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":64 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.lookup( * c.parent, name, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":72 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":73 * * if ret != 0: * log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_lookup_fuse_reply__failed_w, __pyx_t_1}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":72 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":76 * * * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) */ static void __pyx_f_7pyfuse3_fuse_forget(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, uint64_t __pyx_v_nlookup) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_forget", 0); /* "src/handlers.pxi":78 * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) # <<<<<<<<<<<<<< * fuse_reply_none(req) * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_forget); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_uint64_t(__pyx_v_nlookup); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":79 * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) * fuse_reply_none(req) # <<<<<<<<<<<<<< * * */ fuse_reply_none(__pyx_v_req); /* "src/handlers.pxi":76 * * * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_forget", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "src/handlers.pxi":82 * * * cdef void fuse_forget_multi(fuse_req_t req, size_t count, # <<<<<<<<<<<<<< * fuse_forget_data *forgets): * forget_list = list() */ static void __pyx_f_7pyfuse3_fuse_forget_multi(fuse_req_t __pyx_v_req, size_t __pyx_v_count, struct fuse_forget_data *__pyx_v_forgets) { PyObject *__pyx_v_forget_list = NULL; struct fuse_forget_data __pyx_v_el; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct fuse_forget_data *__pyx_t_2; struct fuse_forget_data *__pyx_t_3; struct fuse_forget_data *__pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_forget_multi", 0); /* "src/handlers.pxi":84 * cdef void fuse_forget_multi(fuse_req_t req, size_t count, * fuse_forget_data *forgets): * forget_list = list() # <<<<<<<<<<<<<< * for el in forgets[:count]: * forget_list.append((el.ino, el.nlookup)) */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_forget_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":85 * fuse_forget_data *forgets): * forget_list = list() * for el in forgets[:count]: # <<<<<<<<<<<<<< * forget_list.append((el.ino, el.nlookup)) * save_retval(operations.forget(forget_list)) */ __pyx_t_3 = (__pyx_v_forgets + __pyx_v_count); for (__pyx_t_4 = __pyx_v_forgets; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_el = (__pyx_t_2[0]); /* "src/handlers.pxi":86 * forget_list = list() * for el in forgets[:count]: * forget_list.append((el.ino, el.nlookup)) # <<<<<<<<<<<<<< * save_retval(operations.forget(forget_list)) * fuse_reply_none(req) */ __pyx_t_1 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_el.ino); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_From_uint64_t(__pyx_v_el.nlookup); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_forget_list, __pyx_t_6); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(1, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } /* "src/handlers.pxi":87 * for el in forgets[:count]: * forget_list.append((el.ino, el.nlookup)) * save_retval(operations.forget(forget_list)) # <<<<<<<<<<<<<< * fuse_reply_none(req) * */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_forget); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_forget_list}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":88 * forget_list.append((el.ino, el.nlookup)) * save_retval(operations.forget(forget_list)) * fuse_reply_none(req) # <<<<<<<<<<<<<< * * */ fuse_reply_none(__pyx_v_req); /* "src/handlers.pxi":82 * * * cdef void fuse_forget_multi(fuse_req_t req, size_t count, # <<<<<<<<<<<<<< * fuse_forget_data *forgets): * forget_list = list() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.fuse_forget_multi", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_v_forget_list); __Pyx_RefNannyFinishContext(); } /* "src/handlers.pxi":91 * * * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_getattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, CYTHON_UNUSED struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getattr", 0); /* "src/handlers.pxi":93 * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":94 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * save_retval(fuse_getattr_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":95 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * save_retval(fuse_getattr_async(c)) * */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":96 * c.req = req * c.ino = ino * save_retval(fuse_getattr_async(c)) # <<<<<<<<<<<<<< * * async def fuse_getattr_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_getattr_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":91 * * * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_getattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_4fuse_getattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_3fuse_getattr_async, "fuse_getattr_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_4fuse_getattr_async = {"fuse_getattr_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_4fuse_getattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_3fuse_getattr_async}; static PyObject *__pyx_pw_7pyfuse3_4fuse_getattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getattr_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 98, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_getattr_async") < 0)) __PYX_ERR(1, 98, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_getattr_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 98, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 98, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_3fuse_getattr_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_3fuse_getattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 98, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_5generator1, __pyx_codeobj__3, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_getattr_async, __pyx_n_s_fuse_getattr_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 98, __pyx_L1_error) /* "src/handlers.pxi":102 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.getattr(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":103 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":104 * ctx = get_request_context(c.req) * try: * entry = await operations.getattr(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_getattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 104, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 104, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 104, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 104, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 104, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 104, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":103 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":108 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_attr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_entry->attr, __pyx_cur_scope->__pyx_v_entry->fuse_param.attr_timeout); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":105 * try: * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(1, 105, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":106 * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 106, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 106, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":105 * try: * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":103 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":110 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":111 * * if ret != 0: * log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_getattr_fuse_reply__failed, __pyx_t_1}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":110 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":114 * * * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, # <<<<<<<<<<<<<< * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_setattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct stat *__pyx_v_stat, int __pyx_v_to_set, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_fh = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setattr", 0); /* "src/handlers.pxi":116 * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":117 * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.stat = stat[0] */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":118 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.stat = stat[0] * c.flags = to_set */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":119 * c.req = req * c.ino = ino * c.stat = stat[0] # <<<<<<<<<<<<<< * c.flags = to_set * if fi is NULL: */ __pyx_v_c->stat = (__pyx_v_stat[0]); /* "src/handlers.pxi":120 * c.ino = ino * c.stat = stat[0] * c.flags = to_set # <<<<<<<<<<<<<< * if fi is NULL: * fh = None */ __pyx_v_c->flags = __pyx_v_to_set; /* "src/handlers.pxi":121 * c.stat = stat[0] * c.flags = to_set * if fi is NULL: # <<<<<<<<<<<<<< * fh = None * else: */ __pyx_t_2 = (__pyx_v_fi == NULL); if (__pyx_t_2) { /* "src/handlers.pxi":122 * c.flags = to_set * if fi is NULL: * fh = None # <<<<<<<<<<<<<< * else: * fh = fi.fh */ __Pyx_INCREF(Py_None); __pyx_v_fh = Py_None; /* "src/handlers.pxi":121 * c.stat = stat[0] * c.flags = to_set * if fi is NULL: # <<<<<<<<<<<<<< * fh = None * else: */ goto __pyx_L3; } /* "src/handlers.pxi":124 * fh = None * else: * fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_setattr_async(c, fh)) * */ /*else*/ { __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_fh = __pyx_t_1; __pyx_t_1 = 0; } __pyx_L3:; /* "src/handlers.pxi":125 * else: * fh = fi.fh * save_retval(fuse_setattr_async(c, fh)) # <<<<<<<<<<<<<< * * async def fuse_setattr_async (_Container c, fh): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_setattr_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_v_fh}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":114 * * * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, # <<<<<<<<<<<<<< * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_setattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_fh); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_8generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_7fuse_setattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_6fuse_setattr_async, "fuse_setattr_async(_Container c, fh)"); static PyMethodDef __pyx_mdef_7pyfuse3_7fuse_setattr_async = {"fuse_setattr_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_7fuse_setattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_6fuse_setattr_async}; static PyObject *__pyx_pw_7pyfuse3_7fuse_setattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_fh = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setattr_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_fh,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 127, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fh)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 127, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_setattr_async", 1, 2, 2, 1); __PYX_ERR(1, 127, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_setattr_async") < 0)) __PYX_ERR(1, 127, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_fh = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_setattr_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 127, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 127, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_6fuse_setattr_async(__pyx_self, __pyx_v_c, __pyx_v_fh); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_6fuse_setattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_fh) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 127, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_fh = __pyx_v_fh; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_fh); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_fh); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_8generator2, __pyx_codeobj__4, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_setattr_async, __pyx_n_s_fuse_setattr_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_8generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; PyObject *__pyx_t_2 = NULL; struct stat *__pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; time_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L14_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 127, __pyx_L1_error) /* "src/handlers.pxi":133 * cdef SetattrFields fields * cdef struct_stat *attr * cdef int to_set = c.flags # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_c->flags; __pyx_cur_scope->__pyx_v_to_set = __pyx_t_1; /* "src/handlers.pxi":135 * cdef int to_set = c.flags * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * entry = EntryAttributes() * fields = SetattrFields.__new__(SetattrFields) */ __pyx_t_2 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":136 * * ctx = get_request_context(c.req) * entry = EntryAttributes() # <<<<<<<<<<<<<< * fields = SetattrFields.__new__(SetattrFields) * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) */ __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3_EntryAttributes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_2); __pyx_t_2 = 0; /* "src/handlers.pxi":137 * ctx = get_request_context(c.req) * entry = EntryAttributes() * fields = SetattrFields.__new__(SetattrFields) # <<<<<<<<<<<<<< * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) * */ __pyx_t_2 = ((PyObject *)__pyx_tp_new_7pyfuse3_SetattrFields(((PyTypeObject *)__pyx_ptype_7pyfuse3_SetattrFields), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 137, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_2); __Pyx_GIVEREF((PyObject *)__pyx_t_2); __pyx_cur_scope->__pyx_v_fields = ((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_t_2); __pyx_t_2 = 0; /* "src/handlers.pxi":138 * entry = EntryAttributes() * fields = SetattrFields.__new__(SetattrFields) * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) # <<<<<<<<<<<<<< * * attr = entry.attr */ (void)(memcpy(__pyx_cur_scope->__pyx_v_entry->attr, (&__pyx_cur_scope->__pyx_v_c->stat), (sizeof(struct stat)))); /* "src/handlers.pxi":140 * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) * * attr = entry.attr # <<<<<<<<<<<<<< * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) */ __pyx_t_3 = __pyx_cur_scope->__pyx_v_entry->attr; __pyx_cur_scope->__pyx_v_attr = __pyx_t_3; /* "src/handlers.pxi":141 * * attr = entry.attr * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): # <<<<<<<<<<<<<< * ret = libc_extra.gettime_realtime(&now) * if ret != 0: */ __pyx_t_4 = ((__pyx_cur_scope->__pyx_v_to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW)) != 0); if (__pyx_t_4) { /* "src/handlers.pxi":142 * attr = entry.attr * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) # <<<<<<<<<<<<<< * if ret != 0: * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', */ __pyx_cur_scope->__pyx_v_ret = gettime_realtime((&__pyx_cur_scope->__pyx_v_now)); /* "src/handlers.pxi":143 * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', * strerror(errno.errno)) */ __pyx_t_4 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_4) { /* "src/handlers.pxi":144 * ret = libc_extra.gettime_realtime(&now) * if ret != 0: * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', # <<<<<<<<<<<<<< * strerror(errno.errno)) * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":145 * if ret != 0: * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', * strerror(errno.errno)) # <<<<<<<<<<<<<< * * if to_set & FUSE_SET_ATTR_ATIME: */ __pyx_t_5 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_1 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_1 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_setattr_clock_gettime_CLOCK, __pyx_t_5}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 2+__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/handlers.pxi":143 * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', * strerror(errno.errno)) */ } /* "src/handlers.pxi":141 * * attr = entry.attr * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): # <<<<<<<<<<<<<< * ret = libc_extra.gettime_realtime(&now) * if ret != 0: */ } /* "src/handlers.pxi":147 * strerror(errno.errno)) * * if to_set & FUSE_SET_ATTR_ATIME: # <<<<<<<<<<<<<< * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: */ __pyx_t_4 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_ATIME) != 0); if (__pyx_t_4) { /* "src/handlers.pxi":148 * * if to_set & FUSE_SET_ATTR_ATIME: * fields.update_atime = True # <<<<<<<<<<<<<< * elif to_set & FUSE_SET_ATTR_ATIME_NOW: * fields.update_atime = True */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __pyx_cur_scope->__pyx_v_fields->update_atime = Py_True; /* "src/handlers.pxi":147 * strerror(errno.errno)) * * if to_set & FUSE_SET_ATTR_ATIME: # <<<<<<<<<<<<<< * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: */ goto __pyx_L6; } /* "src/handlers.pxi":149 * if to_set & FUSE_SET_ATTR_ATIME: * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: # <<<<<<<<<<<<<< * fields.update_atime = True * attr.st_atime = now.tv_sec */ __pyx_t_4 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_ATIME_NOW) != 0); if (__pyx_t_4) { /* "src/handlers.pxi":150 * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: * fields.update_atime = True # <<<<<<<<<<<<<< * attr.st_atime = now.tv_sec * SET_ATIME_NS(attr, now.tv_nsec) */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __pyx_cur_scope->__pyx_v_fields->update_atime = Py_True; /* "src/handlers.pxi":151 * elif to_set & FUSE_SET_ATTR_ATIME_NOW: * fields.update_atime = True * attr.st_atime = now.tv_sec # <<<<<<<<<<<<<< * SET_ATIME_NS(attr, now.tv_nsec) * */ __pyx_t_8 = __pyx_cur_scope->__pyx_v_now.tv_sec; __pyx_cur_scope->__pyx_v_attr->st_atime = __pyx_t_8; /* "src/handlers.pxi":152 * fields.update_atime = True * attr.st_atime = now.tv_sec * SET_ATIME_NS(attr, now.tv_nsec) # <<<<<<<<<<<<<< * * if to_set & FUSE_SET_ATTR_MTIME: */ SET_ATIME_NS(__pyx_cur_scope->__pyx_v_attr, __pyx_cur_scope->__pyx_v_now.tv_nsec); /* "src/handlers.pxi":149 * if to_set & FUSE_SET_ATTR_ATIME: * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: # <<<<<<<<<<<<<< * fields.update_atime = True * attr.st_atime = now.tv_sec */ } __pyx_L6:; /* "src/handlers.pxi":154 * SET_ATIME_NS(attr, now.tv_nsec) * * if to_set & FUSE_SET_ATTR_MTIME: # <<<<<<<<<<<<<< * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: */ __pyx_t_4 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_MTIME) != 0); if (__pyx_t_4) { /* "src/handlers.pxi":155 * * if to_set & FUSE_SET_ATTR_MTIME: * fields.update_mtime = True # <<<<<<<<<<<<<< * elif to_set & FUSE_SET_ATTR_MTIME_NOW: * fields.update_mtime = True */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __pyx_cur_scope->__pyx_v_fields->update_mtime = Py_True; /* "src/handlers.pxi":154 * SET_ATIME_NS(attr, now.tv_nsec) * * if to_set & FUSE_SET_ATTR_MTIME: # <<<<<<<<<<<<<< * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: */ goto __pyx_L7; } /* "src/handlers.pxi":156 * if to_set & FUSE_SET_ATTR_MTIME: * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: # <<<<<<<<<<<<<< * fields.update_mtime = True * attr.st_mtime = now.tv_sec */ __pyx_t_4 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_MTIME_NOW) != 0); if (__pyx_t_4) { /* "src/handlers.pxi":157 * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: * fields.update_mtime = True # <<<<<<<<<<<<<< * attr.st_mtime = now.tv_sec * SET_MTIME_NS(attr, now.tv_nsec) */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __pyx_cur_scope->__pyx_v_fields->update_mtime = Py_True; /* "src/handlers.pxi":158 * elif to_set & FUSE_SET_ATTR_MTIME_NOW: * fields.update_mtime = True * attr.st_mtime = now.tv_sec # <<<<<<<<<<<<<< * SET_MTIME_NS(attr, now.tv_nsec) * */ __pyx_t_8 = __pyx_cur_scope->__pyx_v_now.tv_sec; __pyx_cur_scope->__pyx_v_attr->st_mtime = __pyx_t_8; /* "src/handlers.pxi":159 * fields.update_mtime = True * attr.st_mtime = now.tv_sec * SET_MTIME_NS(attr, now.tv_nsec) # <<<<<<<<<<<<<< * * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) */ SET_MTIME_NS(__pyx_cur_scope->__pyx_v_attr, __pyx_cur_scope->__pyx_v_now.tv_nsec); /* "src/handlers.pxi":156 * if to_set & FUSE_SET_ATTR_MTIME: * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: # <<<<<<<<<<<<<< * fields.update_mtime = True * attr.st_mtime = now.tv_sec */ } __pyx_L7:; /* "src/handlers.pxi":161 * SET_MTIME_NS(attr, now.tv_nsec) * * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) # <<<<<<<<<<<<<< * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) */ __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_CTIME)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_4))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_ctime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_ctime); __pyx_cur_scope->__pyx_v_fields->update_ctime = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":162 * * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) # <<<<<<<<<<<<<< * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) */ __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_MODE)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_4))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_mode); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_mode); __pyx_cur_scope->__pyx_v_fields->update_mode = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":163 * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) # <<<<<<<<<<<<<< * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) */ __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_UID)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_4))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_uid); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_uid); __pyx_cur_scope->__pyx_v_fields->update_uid = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":164 * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) # <<<<<<<<<<<<<< * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * */ __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_GID)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_4))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_gid); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_gid); __pyx_cur_scope->__pyx_v_fields->update_gid = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":165 * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) # <<<<<<<<<<<<<< * * try: */ __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_SIZE)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyBool_FromLong((!(!__pyx_t_4))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_size); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_size); __pyx_cur_scope->__pyx_v_fields->update_size = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":167 * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * * try: # <<<<<<<<<<<<<< * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { /* "src/handlers.pxi":168 * * try: * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_setattr); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_1 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_1 = 1; } } { PyObject *__pyx_callargs[6] = {__pyx_t_7, __pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_entry), ((PyObject *)__pyx_cur_scope->__pyx_v_fields), __pyx_cur_scope->__pyx_v_fh, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 5+__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_0 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_1 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_2 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L14_resume_from_await:; __pyx_t_9 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 168, __pyx_L8_error) __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2); } else { __pyx_t_2 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(1, 168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); } if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 168, __pyx_L8_error) __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_entry); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_entry, ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_6)); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":167 * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * * try: # <<<<<<<<<<<<<< * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":172 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_attr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_entry->attr, __pyx_cur_scope->__pyx_v_entry->fuse_param.attr_timeout); } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":169 * try: * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_1 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_1) { __Pyx_AddTraceback("pyfuse3.fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_5) < 0) __PYX_ERR(1, 169, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_e = __pyx_t_2; /*try:*/ { /* "src/handlers.pxi":170 * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 170, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 170, __pyx_L20_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_1); } /* "src/handlers.pxi":169 * try: * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L21; } __pyx_L20_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_1 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); } __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_1; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L10_except_error; } __pyx_L21:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; /* "src/handlers.pxi":167 * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * * try: # <<<<<<<<<<<<<< * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); __pyx_L13_try_end:; } /* "src/handlers.pxi":174 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_4 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_4) { /* "src/handlers.pxi":175 * * if ret != 0: * log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_12 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_setattr_fuse_reply__failed, __pyx_t_2}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_12, 2+__pyx_t_12); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":174 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":178 * * * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_readlink(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readlink", 0); /* "src/handlers.pxi":179 * * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":180 * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * save_retval(fuse_readlink_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":181 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * save_retval(fuse_readlink_async(c)) * */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":182 * c.req = req * c.ino = ino * save_retval(fuse_readlink_async(c)) # <<<<<<<<<<<<<< * * async def fuse_readlink_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_readlink_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":178 * * * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_readlink", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_11generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10fuse_readlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_9fuse_readlink_async, "fuse_readlink_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_10fuse_readlink_async = {"fuse_readlink_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10fuse_readlink_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_9fuse_readlink_async}; static PyObject *__pyx_pw_7pyfuse3_10fuse_readlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readlink_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 184, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_readlink_async") < 0)) __PYX_ERR(1, 184, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_readlink_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 184, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 184, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_9fuse_readlink_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9fuse_readlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readlink_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 184, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_11generator3, __pyx_codeobj__5, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_readlink_async, __pyx_n_s_fuse_readlink_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_11generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; char *__pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readlink_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 184, __pyx_L1_error) /* "src/handlers.pxi":187 * cdef int ret * cdef char* name * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * target = await operations.readlink(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":188 * cdef char* name * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":189 * ctx = get_request_context(c.req) * try: * target = await operations.readlink(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_readlink); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 189, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 189, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 189, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 189, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 189, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_target = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":188 * cdef char* name * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":193 * ret = fuse_reply_err(c.req, e.errno) * else: * name = PyBytes_AsString(target) # <<<<<<<<<<<<<< * ret = fuse_reply_readlink(c.req, name) * */ /*else:*/ { __pyx_t_9 = PyBytes_AsString(__pyx_cur_scope->__pyx_v_target); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 193, __pyx_L6_except_error) __pyx_cur_scope->__pyx_v_name = __pyx_t_9; /* "src/handlers.pxi":194 * else: * name = PyBytes_AsString(target) * ret = fuse_reply_readlink(c.req, name) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_readlink(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_name); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":190 * try: * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 190, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":191 * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * name = PyBytes_AsString(target) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 191, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 191, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":190 * try: * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_8 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":188 * cdef char* name * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":196 * ret = fuse_reply_readlink(c.req, name) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_18 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_18) { /* "src/handlers.pxi":197 * * if ret != 0: * log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_readlink_fuse_reply__failed, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":196 * ret = fuse_reply_readlink(c.req, name) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":200 * * * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, dev_t rdev): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_mknod(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode, dev_t __pyx_v_rdev) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mknod", 0); /* "src/handlers.pxi":202 * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, * mode_t mode, dev_t rdev): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":203 * mode_t mode, dev_t rdev): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.mode = mode */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":204 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.mode = mode * c.rdev = rdev */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":205 * c.req = req * c.parent = parent * c.mode = mode # <<<<<<<<<<<<<< * c.rdev = rdev * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) */ __pyx_v_c->mode = __pyx_v_mode; /* "src/handlers.pxi":206 * c.parent = parent * c.mode = mode * c.rdev = rdev # <<<<<<<<<<<<<< * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->rdev = __pyx_v_rdev; /* "src/handlers.pxi":207 * c.mode = mode * c.rdev = rdev * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_mknod_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_mknod_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":200 * * * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, dev_t rdev): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_mknod", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_14generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13fuse_mknod_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_12fuse_mknod_async, "fuse_mknod_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_13fuse_mknod_async = {"fuse_mknod_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13fuse_mknod_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_12fuse_mknod_async}; static PyObject *__pyx_pw_7pyfuse3_13fuse_mknod_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mknod_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 209, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 209, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_mknod_async", 1, 2, 2, 1); __PYX_ERR(1, 209, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_mknod_async") < 0)) __PYX_ERR(1, 209, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_mknod_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 209, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 209, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_12fuse_mknod_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_12fuse_mknod_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mknod_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 209, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_14generator4, __pyx_codeobj__6, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_mknod_async, __pyx_n_s_fuse_mknod_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_14generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mknod_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 209, __pyx_L1_error) /* "src/handlers.pxi":213 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.mknod( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":214 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":215 * ctx = get_request_context(c.req) * try: * entry = await operations.mknod( # <<<<<<<<<<<<<< * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_mknod); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 215, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); /* "src/handlers.pxi":216 * try: * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 216, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_mode_t(__pyx_cur_scope->__pyx_v_c->mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 216, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_dev_t(__pyx_cur_scope->__pyx_v_c->rdev); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 216, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[6] = {__pyx_t_9, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 5+__pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 215, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 215, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 215, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } /* "src/handlers.pxi":215 * ctx = get_request_context(c.req) * try: * entry = await operations.mknod( # <<<<<<<<<<<<<< * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 215, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":214 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) */ } /* "src/handlers.pxi":220 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":217 * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(1, 217, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":218 * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 218, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 218, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/handlers.pxi":217 * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":214 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":222 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/handlers.pxi":223 * * if ret != 0: * log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_mknod_fuse_reply__failed_wi, __pyx_t_1}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":222 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":226 * * * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_mkdir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mkdir", 0); /* "src/handlers.pxi":228 * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, * mode_t mode): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":229 * mode_t mode): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.mode = mode */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":230 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.mode = mode * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":231 * c.req = req * c.parent = parent * c.mode = mode # <<<<<<<<<<<<<< * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->mode = __pyx_v_mode; /* "src/handlers.pxi":232 * c.parent = parent * c.mode = mode * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_mkdir_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_mkdir_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":226 * * * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_mkdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_17generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_16fuse_mkdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_15fuse_mkdir_async, "fuse_mkdir_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_16fuse_mkdir_async = {"fuse_mkdir_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_16fuse_mkdir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15fuse_mkdir_async}; static PyObject *__pyx_pw_7pyfuse3_16fuse_mkdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mkdir_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 234, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 234, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_mkdir_async", 1, 2, 2, 1); __PYX_ERR(1, 234, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_mkdir_async") < 0)) __PYX_ERR(1, 234, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_mkdir_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 234, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 234, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_15fuse_mkdir_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15fuse_mkdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mkdir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 234, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_17generator5, __pyx_codeobj__7, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_mkdir_async, __pyx_n_s_fuse_mkdir_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 234, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_17generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mkdir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 234, __pyx_L1_error) /* "src/handlers.pxi":240 * # Force the entry type to directory. We need to explicitly cast, * # because on BSD the S_* are not of type mode_t. * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR # <<<<<<<<<<<<<< * ctx = get_request_context(c.req) * try: */ __pyx_cur_scope->__pyx_v_c->mode = ((__pyx_cur_scope->__pyx_v_c->mode & (~((mode_t)S_IFMT))) | ((mode_t)S_IFDIR)); /* "src/handlers.pxi":241 * # because on BSD the S_* are not of type mode_t. * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.mkdir( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":242 * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":243 * ctx = get_request_context(c.req) * try: * entry = await operations.mkdir( # <<<<<<<<<<<<<< * c.parent, name, c.mode, ctx) * except FUSEError as e: */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_mkdir); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); /* "src/handlers.pxi":244 * try: * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 244, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_mode_t(__pyx_cur_scope->__pyx_v_c->mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 244, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[5] = {__pyx_t_8, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_t_7, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 4+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 243, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } /* "src/handlers.pxi":243 * ctx = get_request_context(c.req) * try: * entry = await operations.mkdir( # <<<<<<<<<<<<<< * c.parent, name, c.mode, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 243, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":242 * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) */ } /* "src/handlers.pxi":248 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":245 * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_7) < 0) __PYX_ERR(1, 245, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":246 * c.parent, name, c.mode, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 246, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 246, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/handlers.pxi":245 * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":242 * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":250 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_18 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_18) { /* "src/handlers.pxi":251 * * if ret != 0: * log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi, __pyx_t_1}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":250 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":254 * * * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_unlink(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_unlink", 0); /* "src/handlers.pxi":255 * * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":256 * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":257 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":258 * c.req = req * c.parent = parent * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_unlink_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_unlink_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":254 * * * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_unlink", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_20generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_19fuse_unlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_18fuse_unlink_async, "fuse_unlink_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_19fuse_unlink_async = {"fuse_unlink_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_19fuse_unlink_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_18fuse_unlink_async}; static PyObject *__pyx_pw_7pyfuse3_19fuse_unlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_unlink_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 260, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 260, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_unlink_async", 1, 2, 2, 1); __PYX_ERR(1, 260, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_unlink_async") < 0)) __PYX_ERR(1, 260, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_unlink_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 260, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 260, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_18fuse_unlink_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_18fuse_unlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_unlink_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 260, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_20generator6, __pyx_codeobj__8, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_unlink_async, __pyx_n_s_fuse_unlink_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_20generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_unlink_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 260, __pyx_L1_error) /* "src/handlers.pxi":263 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.unlink(c.parent, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":264 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":265 * ctx = get_request_context(c.req) * try: * await operations.unlink(c.parent, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_unlink); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 265, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 265, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 265, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 265, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 265, __pyx_L4_error) } } /* "src/handlers.pxi":264 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":269 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":266 * try: * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 266, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":267 * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 267, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 267, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":266 * try: * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":264 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":271 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":272 * * if ret != 0: * log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_unlink_fuse_reply__failed_w, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":271 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":275 * * * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_rmdir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rmdir", 0); /* "src/handlers.pxi":276 * * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":277 * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":278 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":279 * c.req = req * c.parent = parent * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_rmdir_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_rmdir_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":275 * * * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_rmdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_23generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_22fuse_rmdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_21fuse_rmdir_async, "fuse_rmdir_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_22fuse_rmdir_async = {"fuse_rmdir_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_22fuse_rmdir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_21fuse_rmdir_async}; static PyObject *__pyx_pw_7pyfuse3_22fuse_rmdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rmdir_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 281, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 281, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_rmdir_async", 1, 2, 2, 1); __PYX_ERR(1, 281, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_rmdir_async") < 0)) __PYX_ERR(1, 281, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_rmdir_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 281, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 281, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_21fuse_rmdir_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_21fuse_rmdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rmdir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 281, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_23generator7, __pyx_codeobj__9, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_rmdir_async, __pyx_n_s_fuse_rmdir_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_23generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rmdir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 281, __pyx_L1_error) /* "src/handlers.pxi":284 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.rmdir(c.parent, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":285 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":286 * ctx = get_request_context(c.req) * try: * await operations.rmdir(c.parent, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_rmdir); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 286, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 286, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 286, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 286, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 286, __pyx_L4_error) } } /* "src/handlers.pxi":285 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":290 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":287 * try: * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 287, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":288 * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 288, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 288, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":287 * try: * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":285 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":292 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":293 * * if ret != 0: * log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":292 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":296 * * * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_symlink(fuse_req_t __pyx_v_req, const char *__pyx_v_link, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_symlink", 0); /* "src/handlers.pxi":298 * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, * const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":299 * const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_symlink_async( */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":300 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_symlink_async( * c, PyBytes_FromString(name), PyBytes_FromString(link))) */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":301 * c.req = req * c.parent = parent * save_retval(fuse_symlink_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(link))) * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_symlink_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "src/handlers.pxi":302 * c.parent = parent * save_retval(fuse_symlink_async( * c, PyBytes_FromString(name), PyBytes_FromString(link))) # <<<<<<<<<<<<<< * * async def fuse_symlink_async (_Container c, name, link): */ __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyBytes_FromString(__pyx_v_link); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_5, ((PyObject *)__pyx_v_c), __pyx_t_3, __pyx_t_4}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } /* "src/handlers.pxi":301 * c.req = req * c.parent = parent * save_retval(fuse_symlink_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(link))) * */ __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":296 * * * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_symlink", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_26generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_25fuse_symlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_24fuse_symlink_async, "fuse_symlink_async(_Container c, name, link)"); static PyMethodDef __pyx_mdef_7pyfuse3_25fuse_symlink_async = {"fuse_symlink_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_25fuse_symlink_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_24fuse_symlink_async}; static PyObject *__pyx_pw_7pyfuse3_25fuse_symlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_link = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_symlink_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,&__pyx_n_s_link,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 304, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 304, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_symlink_async", 1, 3, 3, 1); __PYX_ERR(1, 304, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_link)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 304, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_symlink_async", 1, 3, 3, 2); __PYX_ERR(1, 304, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_symlink_async") < 0)) __PYX_ERR(1, 304, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; __pyx_v_link = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_symlink_async", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 304, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 304, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_24fuse_symlink_async(__pyx_self, __pyx_v_c, __pyx_v_name, __pyx_v_link); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_24fuse_symlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_link) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_symlink_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 304, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __pyx_cur_scope->__pyx_v_link = __pyx_v_link; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_link); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_link); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_26generator8, __pyx_codeobj__10, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_symlink_async, __pyx_n_s_fuse_symlink_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 304, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_26generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_symlink_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 304, __pyx_L1_error) /* "src/handlers.pxi":308 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.symlink( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":309 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.symlink( * c.parent, name, link, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":310 * ctx = get_request_context(c.req) * try: * entry = await operations.symlink( # <<<<<<<<<<<<<< * c.parent, name, link, ctx) * except FUSEError as e: */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_symlink); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 310, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); /* "src/handlers.pxi":311 * try: * entry = await operations.symlink( * c.parent, name, link, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 311, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[5] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_link, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 310, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 310, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 310, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } /* "src/handlers.pxi":310 * ctx = get_request_context(c.req) * try: * entry = await operations.symlink( # <<<<<<<<<<<<<< * c.parent, name, link, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 310, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":309 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.symlink( * c.parent, name, link, ctx) */ } /* "src/handlers.pxi":315 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":312 * entry = await operations.symlink( * c.parent, name, link, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(1, 312, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":313 * c.parent, name, link, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 313, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 313, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":312 * entry = await operations.symlink( * c.parent, name, link, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":309 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.symlink( * c.parent, name, link, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":317 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":318 * * if ret != 0: * log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_symlink_fuse_reply__failed, __pyx_t_1}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":317 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":321 * * * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_rename(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, fuse_ino_t __pyx_v_newparent, const char *__pyx_v_newname, unsigned int __pyx_v_flags) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rename", 0); /* "src/handlers.pxi":323 * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":324 * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.ino = newparent */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":325 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.ino = newparent * c.flags = flags */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":326 * c.req = req * c.parent = parent * c.ino = newparent # <<<<<<<<<<<<<< * c.flags = flags * save_retval(fuse_rename_async( */ __pyx_v_c->ino = __pyx_v_newparent; /* "src/handlers.pxi":327 * c.parent = parent * c.ino = newparent * c.flags = flags # <<<<<<<<<<<<<< * save_retval(fuse_rename_async( * c, PyBytes_FromString(name), PyBytes_FromString(newname))) */ __pyx_v_c->flags = ((int)__pyx_v_flags); /* "src/handlers.pxi":328 * c.ino = newparent * c.flags = flags * save_retval(fuse_rename_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(newname))) * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_rename_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "src/handlers.pxi":329 * c.flags = flags * save_retval(fuse_rename_async( * c, PyBytes_FromString(name), PyBytes_FromString(newname))) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyBytes_FromString(__pyx_v_newname); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_5, ((PyObject *)__pyx_v_c), __pyx_t_3, __pyx_t_4}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } /* "src/handlers.pxi":328 * c.ino = newparent * c.flags = flags * save_retval(fuse_rename_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(newname))) * */ __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":321 * * * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_rename", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_29generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_28fuse_rename_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_27fuse_rename_async, "fuse_rename_async(_Container c, name, newname)"); static PyMethodDef __pyx_mdef_7pyfuse3_28fuse_rename_async = {"fuse_rename_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_28fuse_rename_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_27fuse_rename_async}; static PyObject *__pyx_pw_7pyfuse3_28fuse_rename_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_newname = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rename_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,&__pyx_n_s_newname,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 332, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 332, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_rename_async", 1, 3, 3, 1); __PYX_ERR(1, 332, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_newname)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 332, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_rename_async", 1, 3, 3, 2); __PYX_ERR(1, 332, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_rename_async") < 0)) __PYX_ERR(1, 332, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; __pyx_v_newname = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_rename_async", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 332, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 332, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_27fuse_rename_async(__pyx_self, __pyx_v_c, __pyx_v_name, __pyx_v_newname); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_27fuse_rename_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_newname) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rename_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 332, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __pyx_cur_scope->__pyx_v_newname = __pyx_v_newname; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_newname); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_newname); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_29generator9, __pyx_codeobj__11, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_rename_async, __pyx_n_s_fuse_rename_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_29generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; fuse_ino_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_t_20; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rename_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 332, __pyx_L1_error) /* "src/handlers.pxi":334 * async def fuse_rename_async (_Container c, name, newname): * cdef int ret * cdef unsigned flags = c.flags # <<<<<<<<<<<<<< * cdef fuse_ino_t newparent = c.ino * */ __pyx_cur_scope->__pyx_v_flags = ((unsigned int)__pyx_cur_scope->__pyx_v_c->flags); /* "src/handlers.pxi":335 * cdef int ret * cdef unsigned flags = c.flags * cdef fuse_ino_t newparent = c.ino # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_c->ino; __pyx_cur_scope->__pyx_v_newparent = __pyx_t_1; /* "src/handlers.pxi":337 * cdef fuse_ino_t newparent = c.ino * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) */ __pyx_t_2 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":338 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "src/handlers.pxi":339 * ctx = get_request_context(c.req) * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_rename); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_newparent); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyInt_From_unsigned_int(__pyx_cur_scope->__pyx_v_flags); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[7] = {__pyx_t_10, __pyx_t_7, __pyx_cur_scope->__pyx_v_name, __pyx_t_8, __pyx_cur_scope->__pyx_v_newname, __pyx_t_9, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_11, 6+__pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_1 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_2 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 339, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 339, __pyx_L4_error) } } /* "src/handlers.pxi":338 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":343 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":340 * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_11) { __Pyx_AddTraceback("pyfuse3.fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_6, &__pyx_t_9) < 0) __PYX_ERR(1, 340, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/handlers.pxi":341 * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 341, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 341, __pyx_L16_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_11); } /* "src/handlers.pxi":340 * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); } __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":338 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); __pyx_L9_try_end:; } /* "src/handlers.pxi":345 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_20 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_20) { /* "src/handlers.pxi":346 * * if ret != 0: * log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_12 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_kp_u_fuse_rename_fuse_reply__failed_w, __pyx_t_6}; __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_12, 2+__pyx_t_12); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":345 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":349 * * * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, # <<<<<<<<<<<<<< * const_char *newname): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_link(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, fuse_ino_t __pyx_v_newparent, const char *__pyx_v_newname) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_link", 0); /* "src/handlers.pxi":351 * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, * const_char *newname): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":352 * const_char *newname): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.parent = newparent */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":353 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.parent = newparent * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":354 * c.req = req * c.ino = ino * c.parent = newparent # <<<<<<<<<<<<<< * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * */ __pyx_v_c->parent = __pyx_v_newparent; /* "src/handlers.pxi":355 * c.ino = ino * c.parent = newparent * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) # <<<<<<<<<<<<<< * * async def fuse_link_async (_Container c, newname): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_link_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_newname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":349 * * * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, # <<<<<<<<<<<<<< * const_char *newname): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_link", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_32generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_31fuse_link_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_30fuse_link_async, "fuse_link_async(_Container c, newname)"); static PyMethodDef __pyx_mdef_7pyfuse3_31fuse_link_async = {"fuse_link_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_31fuse_link_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_30fuse_link_async}; static PyObject *__pyx_pw_7pyfuse3_31fuse_link_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_newname = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_link_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_newname,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 357, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_newname)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 357, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_link_async", 1, 2, 2, 1); __PYX_ERR(1, 357, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_link_async") < 0)) __PYX_ERR(1, 357, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_newname = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_link_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 357, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 357, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_30fuse_link_async(__pyx_self, __pyx_v_c, __pyx_v_newname); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_30fuse_link_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_newname) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_link_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 357, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_newname = __pyx_v_newname; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_newname); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_newname); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_32generator10, __pyx_codeobj__12, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_link_async, __pyx_n_s_fuse_link_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_32generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_link_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 357, __pyx_L1_error) /* "src/handlers.pxi":361 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.link( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":362 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.link( * c.ino, c.parent, newname, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":363 * ctx = get_request_context(c.req) * try: * entry = await operations.link( # <<<<<<<<<<<<<< * c.ino, c.parent, newname, ctx) * except FUSEError as e: */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_link); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 363, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); /* "src/handlers.pxi":364 * try: * entry = await operations.link( * c.ino, c.parent, newname, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 364, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 364, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[5] = {__pyx_t_8, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_newname, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 4+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 363, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 363, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 363, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } /* "src/handlers.pxi":363 * ctx = get_request_context(c.req) * try: * entry = await operations.link( # <<<<<<<<<<<<<< * c.ino, c.parent, newname, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 363, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":362 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.link( * c.ino, c.parent, newname, ctx) */ } /* "src/handlers.pxi":368 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":365 * entry = await operations.link( * c.ino, c.parent, newname, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_7) < 0) __PYX_ERR(1, 365, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":366 * c.ino, c.parent, newname, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 366, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 366, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/handlers.pxi":365 * entry = await operations.link( * c.ino, c.parent, newname, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":362 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.link( * c.ino, c.parent, newname, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":370 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_18 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_18) { /* "src/handlers.pxi":371 * * if ret != 0: * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_kp_u_fuse_link_fuse_reply__failed_wit, __pyx_t_1}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":370 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":374 * * * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_open(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_open", 0); /* "src/handlers.pxi":375 * * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":376 * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.fi = fi[0] */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":377 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.fi = fi[0] * save_retval(fuse_open_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":378 * c.req = req * c.ino = ino * c.fi = fi[0] # <<<<<<<<<<<<<< * save_retval(fuse_open_async(c)) * */ __pyx_v_c->fi = (__pyx_v_fi[0]); /* "src/handlers.pxi":379 * c.ino = ino * c.fi = fi[0] * save_retval(fuse_open_async(c)) # <<<<<<<<<<<<<< * * async def fuse_open_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_open_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 379, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":374 * * * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_open", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_35generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_34fuse_open_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_33fuse_open_async, "fuse_open_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_34fuse_open_async = {"fuse_open_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_34fuse_open_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_33fuse_open_async}; static PyObject *__pyx_pw_7pyfuse3_34fuse_open_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_open_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 381, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_open_async") < 0)) __PYX_ERR(1, 381, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_open_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 381, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 381, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_33fuse_open_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_33fuse_open_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_open_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 381, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_35generator11, __pyx_codeobj__13, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_open_async, __pyx_n_s_fuse_open_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 381, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_35generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_open_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 381, __pyx_L1_error) /* "src/handlers.pxi":385 * cdef FileInfo fi * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * * try: */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":387 * ctx = get_request_context(c.req) * * try: # <<<<<<<<<<<<<< * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":388 * * try: * fi = await operations.open(c.ino, c.fi.flags, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_open); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_c->fi.flags); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 3+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 388, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_FileInfo)))) __PYX_ERR(1, 388, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_fi = ((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":387 * ctx = get_request_context(c.req) * * try: # <<<<<<<<<<<<<< * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":392 * ret = fuse_reply_err(c.req, e.errno) * else: * fi._copy_to_fuse(&c.fi) # <<<<<<<<<<<<<< * ret = fuse_reply_open(c.req, &c.fi) * */ /*else:*/ { __pyx_t_5 = ((struct __pyx_vtabstruct_7pyfuse3_FileInfo *)__pyx_cur_scope->__pyx_v_fi->__pyx_vtab)->_copy_to_fuse(__pyx_cur_scope->__pyx_v_fi, (&__pyx_cur_scope->__pyx_v_c->fi)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 392, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":393 * else: * fi._copy_to_fuse(&c.fi) * ret = fuse_reply_open(c.req, &c.fi) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_open(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_c->fi)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":389 * try: * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_7) < 0) __PYX_ERR(1, 389, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":390 * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * fi._copy_to_fuse(&c.fi) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 390, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 390, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/handlers.pxi":389 * try: * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":387 * ctx = get_request_context(c.req) * * try: # <<<<<<<<<<<<<< * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":395 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_18 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_18) { /* "src/handlers.pxi":396 * * if ret != 0: * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_kp_u_fuse_link_fuse_reply__failed_wit, __pyx_t_1}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":395 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":399 * * * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_read(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_read", 0); /* "src/handlers.pxi":401 * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.size = size */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":402 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.size = size * c.off = off */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":403 * cdef _Container c = _Container() * c.req = req * c.size = size # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->size = __pyx_v_size; /* "src/handlers.pxi":404 * c.req = req * c.size = size * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_read_async(c)) */ __pyx_v_c->off = __pyx_v_off; /* "src/handlers.pxi":405 * c.size = size * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_read_async(c)) * */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":406 * c.off = off * c.fh = fi.fh * save_retval(fuse_read_async(c)) # <<<<<<<<<<<<<< * * async def fuse_read_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_read_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 406, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":399 * * * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_read", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_38generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_37fuse_read_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_36fuse_read_async, "fuse_read_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_37fuse_read_async = {"fuse_read_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_37fuse_read_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_36fuse_read_async}; static PyObject *__pyx_pw_7pyfuse3_37fuse_read_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_read_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 408, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_read_async") < 0)) __PYX_ERR(1, 408, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_read_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 408, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 408, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_36fuse_read_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_36fuse_read_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_read_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 408, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_38generator12, __pyx_codeobj__14, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_read_async, __pyx_n_s_fuse_read_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 408, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_38generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_read_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 408, __pyx_L1_error) /* "src/handlers.pxi":412 * cdef Py_buffer pybuf * * try: # <<<<<<<<<<<<<< * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":413 * * try: * buf = await operations.read(c.fh, c.off, c.size) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_read); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_cur_scope->__pyx_v_c->size); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_t_6, __pyx_t_7, __pyx_t_8}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 3+__pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 413, __pyx_L4_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else { __pyx_t_4 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(1, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_buf = __pyx_t_4; __pyx_t_4 = 0; /* "src/handlers.pxi":412 * cdef Py_buffer pybuf * * try: # <<<<<<<<<<<<<< * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: */ } /* "src/handlers.pxi":417 * ret = fuse_reply_err(c.req, e.errno) * else: * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) * PyBuffer_Release(&pybuf) */ /*else:*/ { __pyx_t_10 = PyObject_GetBuffer(__pyx_cur_scope->__pyx_v_buf, (&__pyx_cur_scope->__pyx_v_pybuf), PyBUF_CONTIG_RO); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 417, __pyx_L6_except_error) /* "src/handlers.pxi":418 * else: * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) * ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) # <<<<<<<<<<<<<< * PyBuffer_Release(&pybuf) * */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, ((const char *)__pyx_cur_scope->__pyx_v_pybuf.buf), ((size_t)__pyx_cur_scope->__pyx_v_pybuf.len)); /* "src/handlers.pxi":419 * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) * ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) * PyBuffer_Release(&pybuf) # <<<<<<<<<<<<<< * * if ret != 0: */ PyBuffer_Release((&__pyx_cur_scope->__pyx_v_pybuf)); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":414 * try: * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(1, 414, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":415 * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 415, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 415, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/handlers.pxi":414 * try: * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":412 * cdef Py_buffer pybuf * * try: # <<<<<<<<<<<<<< * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":421 * PyBuffer_Release(&pybuf) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/handlers.pxi":422 * * if ret != 0: * log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_read_fuse_reply__failed_wit, __pyx_t_5}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":421 * PyBuffer_Release(&pybuf) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":425 * * * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, # <<<<<<<<<<<<<< * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_write(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, const char *__pyx_v_buf, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_pbuf = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write", 0); /* "src/handlers.pxi":427 * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.size = size */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":428 * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.size = size * c.off = off */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":429 * cdef _Container c = _Container() * c.req = req * c.size = size # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->size = __pyx_v_size; /* "src/handlers.pxi":430 * c.req = req * c.size = size * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * */ __pyx_v_c->off = __pyx_v_off; /* "src/handlers.pxi":431 * c.size = size * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * * if size > PY_SSIZE_T_MAX: */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":433 * c.fh = fi.fh * * if size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) */ __pyx_t_3 = (__pyx_v_size > PY_SSIZE_T_MAX); if (unlikely(__pyx_t_3)) { /* "src/handlers.pxi":434 * * if size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') # <<<<<<<<<<<<<< * pbuf = PyBytes_FromStringAndSize(buf, size) * save_retval(fuse_write_async(c, pbuf)) */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_OverflowError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 434, __pyx_L1_error) /* "src/handlers.pxi":433 * c.fh = fi.fh * * if size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) */ } /* "src/handlers.pxi":435 * if size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) # <<<<<<<<<<<<<< * save_retval(fuse_write_async(c, pbuf)) * */ __pyx_t_1 = PyBytes_FromStringAndSize(__pyx_v_buf, ((Py_ssize_t)__pyx_v_size)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_pbuf = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":436 * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) * save_retval(fuse_write_async(c, pbuf)) # <<<<<<<<<<<<<< * * async def fuse_write_async (_Container c, pbuf): */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fuse_write_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_5, ((PyObject *)__pyx_v_c), __pyx_v_pbuf}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":425 * * * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, # <<<<<<<<<<<<<< * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_write", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_pbuf); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_41generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_40fuse_write_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_39fuse_write_async, "fuse_write_async(_Container c, pbuf)"); static PyMethodDef __pyx_mdef_7pyfuse3_40fuse_write_async = {"fuse_write_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_40fuse_write_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_39fuse_write_async}; static PyObject *__pyx_pw_7pyfuse3_40fuse_write_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_pbuf = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_pbuf,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 438, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pbuf)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 438, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_write_async", 1, 2, 2, 1); __PYX_ERR(1, 438, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_write_async") < 0)) __PYX_ERR(1, 438, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_pbuf = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_write_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 438, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 438, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_39fuse_write_async(__pyx_self, __pyx_v_c, __pyx_v_pbuf); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_39fuse_write_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_pbuf) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 438, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_pbuf = __pyx_v_pbuf; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_pbuf); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_pbuf); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_41generator13, __pyx_codeobj__16, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_write_async, __pyx_n_s_fuse_write_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_41generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; size_t __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 438, __pyx_L1_error) /* "src/handlers.pxi":442 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":443 * * try: * len_ = await operations.write(c.fh, c.off, pbuf) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_write); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_pbuf}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 3+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 443, __pyx_L4_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else { __pyx_t_4 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(1, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_10 = __Pyx_PyInt_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_10 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 443, __pyx_L4_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_cur_scope->__pyx_v_len_ = __pyx_t_10; /* "src/handlers.pxi":442 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: */ } /* "src/handlers.pxi":447 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_write(c.req, len_) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_write(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":444 * try: * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(1, 444, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":445 * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_write(c.req, len_) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 445, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 445, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/handlers.pxi":444 * try: * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":442 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":449 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/handlers.pxi":450 * * if ret != 0: * log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_kp_u_fuse_write_fuse_reply__failed_wi, __pyx_t_5}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":449 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":453 * * * cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, # <<<<<<<<<<<<<< * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_write_buf(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_bufvec *__pyx_v_bufv, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_buf = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write_buf", 0); /* "src/handlers.pxi":455 * cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.off = off */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":456 * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":457 * cdef _Container c = _Container() * c.req = req * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * buf = PyBytes_from_bufvec(bufv) */ __pyx_v_c->off = __pyx_v_off; /* "src/handlers.pxi":458 * c.req = req * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * buf = PyBytes_from_bufvec(bufv) * save_retval(fuse_write_buf_async(c, buf)) */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":459 * c.off = off * c.fh = fi.fh * buf = PyBytes_from_bufvec(bufv) # <<<<<<<<<<<<<< * save_retval(fuse_write_buf_async(c, buf)) * */ __pyx_t_1 = __pyx_f_7pyfuse3_PyBytes_from_bufvec(__pyx_v_bufv); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_buf = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":460 * c.fh = fi.fh * buf = PyBytes_from_bufvec(bufv) * save_retval(fuse_write_buf_async(c, buf)) # <<<<<<<<<<<<<< * * async def fuse_write_buf_async (_Container c, buf): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_write_buf_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_v_buf}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 460, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":453 * * * cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, # <<<<<<<<<<<<<< * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_write_buf", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_buf); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_44generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_43fuse_write_buf_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_42fuse_write_buf_async, "fuse_write_buf_async(_Container c, buf)"); static PyMethodDef __pyx_mdef_7pyfuse3_43fuse_write_buf_async = {"fuse_write_buf_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_43fuse_write_buf_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_42fuse_write_buf_async}; static PyObject *__pyx_pw_7pyfuse3_43fuse_write_buf_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_buf = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_buf_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_buf,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 462, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_buf)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 462, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_write_buf_async", 1, 2, 2, 1); __PYX_ERR(1, 462, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_write_buf_async") < 0)) __PYX_ERR(1, 462, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_buf = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_write_buf_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 462, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 462, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_42fuse_write_buf_async(__pyx_self, __pyx_v_c, __pyx_v_buf); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_42fuse_write_buf_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_buf) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write_buf_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 462, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_buf = __pyx_v_buf; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_buf); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_buf); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_44generator14, __pyx_codeobj__17, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_write_buf_async, __pyx_n_s_fuse_write_buf_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 462, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_44generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; size_t __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_buf_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 462, __pyx_L1_error) /* "src/handlers.pxi":466 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":467 * * try: * len_ = await operations.write(c.fh, c.off, buf) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_write); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_buf}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 3+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 467, __pyx_L4_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else { __pyx_t_4 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(1, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_10 = __Pyx_PyInt_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_10 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 467, __pyx_L4_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_cur_scope->__pyx_v_len_ = __pyx_t_10; /* "src/handlers.pxi":466 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: */ } /* "src/handlers.pxi":471 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_write(c.req, len_) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_write(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":468 * try: * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(1, 468, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":469 * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_write(c.req, len_) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 469, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 469, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/handlers.pxi":468 * try: * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":466 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":473 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/handlers.pxi":474 * * if ret != 0: * log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_kp_u_fuse_write_buf_fuse_reply__faile, __pyx_t_5}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":473 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":477 * * * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_flush(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_flush", 0); /* "src/handlers.pxi":478 * * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.fh = fi.fh */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":479 * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_flush_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":480 * cdef _Container c = _Container() * c.req = req * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_flush_async(c)) * */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":481 * c.req = req * c.fh = fi.fh * save_retval(fuse_flush_async(c)) # <<<<<<<<<<<<<< * * async def fuse_flush_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_flush_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":477 * * * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_flush", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_47generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_46fuse_flush_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_45fuse_flush_async, "fuse_flush_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_46fuse_flush_async = {"fuse_flush_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_46fuse_flush_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_45fuse_flush_async}; static PyObject *__pyx_pw_7pyfuse3_46fuse_flush_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_flush_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 483, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_flush_async") < 0)) __PYX_ERR(1, 483, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_flush_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 483, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 483, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_45fuse_flush_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_45fuse_flush_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_flush_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 483, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_47generator15, __pyx_codeobj__18, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_flush_async, __pyx_n_s_fuse_flush_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_47generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_flush_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 483, __pyx_L1_error) /* "src/handlers.pxi":486 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.flush(c.fh) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":487 * * try: * await operations.flush(c.fh) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_flush); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 487, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 487, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 487, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 487, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 487, __pyx_L4_error) } } /* "src/handlers.pxi":486 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.flush(c.fh) * except FUSEError as e: */ } /* "src/handlers.pxi":491 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":488 * try: * await operations.flush(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 488, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":489 * await operations.flush(c.fh) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 489, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 489, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":488 * try: * await operations.flush(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":486 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.flush(c.fh) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":493 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":494 * * if ret != 0: * log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_flush_fuse_reply__failed_wi, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":493 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":497 * * * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_release(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_release", 0); /* "src/handlers.pxi":498 * * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.fh = fi.fh */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":499 * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_release_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":500 * cdef _Container c = _Container() * c.req = req * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_release_async(c)) * */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":501 * c.req = req * c.fh = fi.fh * save_retval(fuse_release_async(c)) # <<<<<<<<<<<<<< * * async def fuse_release_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_release_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 501, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":497 * * * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_release", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_50generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_49fuse_release_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_48fuse_release_async, "fuse_release_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_49fuse_release_async = {"fuse_release_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_49fuse_release_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_48fuse_release_async}; static PyObject *__pyx_pw_7pyfuse3_49fuse_release_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_release_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 503, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_release_async") < 0)) __PYX_ERR(1, 503, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_release_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 503, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 503, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_48fuse_release_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_48fuse_release_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_release_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 503, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_50generator16, __pyx_codeobj__19, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_release_async, __pyx_n_s_fuse_release_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 503, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_50generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_release_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 503, __pyx_L1_error) /* "src/handlers.pxi":506 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.release(c.fh) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":507 * * try: * await operations.release(c.fh) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_release); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 507, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 507, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 507, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 507, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 507, __pyx_L4_error) } } /* "src/handlers.pxi":506 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.release(c.fh) * except FUSEError as e: */ } /* "src/handlers.pxi":511 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":508 * try: * await operations.release(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 508, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":509 * await operations.release(c.fh) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 509, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 509, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":508 * try: * await operations.release(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":506 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.release(c.fh) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":513 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":514 * * if ret != 0: * log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_release_fuse_reply__failed, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":513 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":517 * * * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_fsync(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, int __pyx_v_datasync, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsync", 0); /* "src/handlers.pxi":519 * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.flags = datasync */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":520 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.flags = datasync * c.fh = fi.fh */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":521 * cdef _Container c = _Container() * c.req = req * c.flags = datasync # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_fsync_async(c)) */ __pyx_v_c->flags = __pyx_v_datasync; /* "src/handlers.pxi":522 * c.req = req * c.flags = datasync * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_fsync_async(c)) * */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":523 * c.flags = datasync * c.fh = fi.fh * save_retval(fuse_fsync_async(c)) # <<<<<<<<<<<<<< * * async def fuse_fsync_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_fsync_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":517 * * * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_fsync", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_53generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_52fuse_fsync_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_51fuse_fsync_async, "fuse_fsync_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_52fuse_fsync_async = {"fuse_fsync_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_52fuse_fsync_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_51fuse_fsync_async}; static PyObject *__pyx_pw_7pyfuse3_52fuse_fsync_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsync_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 525, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_fsync_async") < 0)) __PYX_ERR(1, 525, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_fsync_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 525, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 525, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_51fuse_fsync_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_51fuse_fsync_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsync_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 525, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_53generator17, __pyx_codeobj__20, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_fsync_async, __pyx_n_s_fuse_fsync_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 525, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_53generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsync_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 525, __pyx_L1_error) /* "src/handlers.pxi":528 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":529 * * try: * await operations.fsync(c.fh, c.flags != 0) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_fsync); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 529, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 529, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyBool_FromLong((__pyx_cur_scope->__pyx_v_c->flags != 0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 529, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 529, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 529, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 529, __pyx_L4_error) } } /* "src/handlers.pxi":528 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: */ } /* "src/handlers.pxi":533 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":530 * try: * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(1, 530, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":531 * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 531, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 531, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/handlers.pxi":530 * try: * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":528 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":535 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_18 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_18) { /* "src/handlers.pxi":536 * * if ret != 0: * log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_kp_u_fuse_fsync_fuse_reply__failed_wi, __pyx_t_5}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":535 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":539 * * * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_opendir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_opendir", 0); /* "src/handlers.pxi":540 * * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":541 * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.fi = fi[0] */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":542 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.fi = fi[0] * save_retval(fuse_opendir_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":543 * c.req = req * c.ino = ino * c.fi = fi[0] # <<<<<<<<<<<<<< * save_retval(fuse_opendir_async(c)) * */ __pyx_v_c->fi = (__pyx_v_fi[0]); /* "src/handlers.pxi":544 * c.ino = ino * c.fi = fi[0] * save_retval(fuse_opendir_async(c)) # <<<<<<<<<<<<<< * * async def fuse_opendir_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_opendir_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":539 * * * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_opendir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_56generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_55fuse_opendir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_54fuse_opendir_async, "fuse_opendir_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_55fuse_opendir_async = {"fuse_opendir_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_55fuse_opendir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_54fuse_opendir_async}; static PyObject *__pyx_pw_7pyfuse3_55fuse_opendir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_opendir_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 546, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_opendir_async") < 0)) __PYX_ERR(1, 546, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_opendir_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 546, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 546, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_54fuse_opendir_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_54fuse_opendir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_opendir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 546, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_56generator18, __pyx_codeobj__21, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_opendir_async, __pyx_n_s_fuse_opendir_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 546, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_56generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; uint64_t __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_opendir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 546, __pyx_L1_error) /* "src/handlers.pxi":549 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * c.fi.fh = await operations.opendir(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":550 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":551 * ctx = get_request_context(c.req) * try: * c.fi.fh = await operations.opendir(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_opendir); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 551, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_9 = __Pyx_PyInt_As_uint64_t(__pyx_t_1); if (unlikely((__pyx_t_9 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(1, 551, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_cur_scope->__pyx_v_c->fi.fh = __pyx_t_9; /* "src/handlers.pxi":550 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":555 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_open(c.req, &c.fi) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_open(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_c->fi)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":552 * try: * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 552, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":553 * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_open(c.req, &c.fi) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 553, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 553, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":552 * try: * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_8 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":550 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":557 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_18 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_18) { /* "src/handlers.pxi":558 * * if ret != 0: * log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_opendir_fuse_reply__failed, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":557 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_12ReaddirToken___reduce_cython__, "ReaddirToken.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_12ReaddirToken_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_12ReaddirToken___reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_12ReaddirToken___reduce_cython__(((struct __pyx_obj_7pyfuse3_ReaddirToken *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.ReaddirToken.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_12ReaddirToken_2__setstate_cython__, "ReaddirToken.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_12ReaddirToken_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_12ReaddirToken_2__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 3, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.ReaddirToken.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_12ReaddirToken_2__setstate_cython__(((struct __pyx_obj_7pyfuse3_ReaddirToken *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.ReaddirToken.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":568 * cdef size_t size * * cdef void fuse_readdirplus (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * global py_retval */ static void __pyx_f_7pyfuse3_fuse_readdirplus(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readdirplus", 0); /* "src/handlers.pxi":571 * fuse_file_info *fi): * global py_retval * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.size = size */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":572 * global py_retval * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.size = size * c.off = off */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":573 * cdef _Container c = _Container() * c.req = req * c.size = size # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->size = __pyx_v_size; /* "src/handlers.pxi":574 * c.req = req * c.size = size * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_readdirplus_async(c)) */ __pyx_v_c->off = __pyx_v_off; /* "src/handlers.pxi":575 * c.size = size * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_readdirplus_async(c)) * */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":576 * c.off = off * c.fh = fi.fh * save_retval(fuse_readdirplus_async(c)) # <<<<<<<<<<<<<< * * async def fuse_readdirplus_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_readdirplus_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":568 * cdef size_t size * * cdef void fuse_readdirplus (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * global py_retval */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_readdirplus", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_59generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_58fuse_readdirplus_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_57fuse_readdirplus_async, "fuse_readdirplus_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_58fuse_readdirplus_async = {"fuse_readdirplus_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_58fuse_readdirplus_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_57fuse_readdirplus_async}; static PyObject *__pyx_pw_7pyfuse3_58fuse_readdirplus_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readdirplus_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 578, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_readdirplus_async") < 0)) __PYX_ERR(1, 578, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_readdirplus_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 578, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 578, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_57fuse_readdirplus_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_57fuse_readdirplus_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readdirplus_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 578, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_59generator19, __pyx_codeobj__22, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_readdirplus_async, __pyx_n_s_fuse_readdirplus_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 578, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_59generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; size_t __pyx_t_2; fuse_req_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; int __pyx_t_12; int __pyx_t_13; char const *__pyx_t_14; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; char const *__pyx_t_21; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readdirplus_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L13_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 578, __pyx_L1_error) /* "src/handlers.pxi":580 * async def fuse_readdirplus_async (_Container c): * cdef int ret * cdef ReaddirToken token = ReaddirToken() # <<<<<<<<<<<<<< * token.buf_start = NULL * token.size = c.size */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3_ReaddirToken)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_token = ((struct __pyx_obj_7pyfuse3_ReaddirToken *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":581 * cdef int ret * cdef ReaddirToken token = ReaddirToken() * token.buf_start = NULL # <<<<<<<<<<<<<< * token.size = c.size * token.req = c.req */ __pyx_cur_scope->__pyx_v_token->buf_start = NULL; /* "src/handlers.pxi":582 * cdef ReaddirToken token = ReaddirToken() * token.buf_start = NULL * token.size = c.size # <<<<<<<<<<<<<< * token.req = c.req * */ __pyx_t_2 = __pyx_cur_scope->__pyx_v_c->size; __pyx_cur_scope->__pyx_v_token->size = __pyx_t_2; /* "src/handlers.pxi":583 * token.buf_start = NULL * token.size = c.size * token.req = c.req # <<<<<<<<<<<<<< * * try: */ __pyx_t_3 = __pyx_cur_scope->__pyx_v_c->req; __pyx_cur_scope->__pyx_v_token->req = __pyx_t_3; /* "src/handlers.pxi":585 * token.req = c.req * * try: # <<<<<<<<<<<<<< * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: */ /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { /* "src/handlers.pxi":586 * * try: * await operations.readdir(c.fh, c.off, token) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_readdir); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 586, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 586, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyInt_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 586, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_10, __pyx_t_8, __pyx_t_9, ((PyObject *)__pyx_cur_scope->__pyx_v_token)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_11, 3+__pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 586, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L13_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 586, __pyx_L7_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 586, __pyx_L7_error) } } /* "src/handlers.pxi":585 * token.req = c.req * * try: # <<<<<<<<<<<<<< * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: */ } /* "src/handlers.pxi":590 * ret = fuse_reply_err(c.req, e.errno) * else: * if token.buf_start == NULL: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, NULL, 0) * else: */ /*else:*/ { __pyx_t_12 = (__pyx_cur_scope->__pyx_v_token->buf_start == NULL); if (__pyx_t_12) { /* "src/handlers.pxi":591 * else: * if token.buf_start == NULL: * ret = fuse_reply_buf(c.req, NULL, 0) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, NULL, 0); /* "src/handlers.pxi":590 * ret = fuse_reply_err(c.req, e.errno) * else: * if token.buf_start == NULL: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, NULL, 0) * else: */ goto __pyx_L14; } /* "src/handlers.pxi":593 * ret = fuse_reply_buf(c.req, NULL, 0) * else: * ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) # <<<<<<<<<<<<<< * finally: * stdlib.free(token.buf_start) */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_token->buf_start, (__pyx_cur_scope->__pyx_v_c->size - __pyx_cur_scope->__pyx_v_token->size)); } __pyx_L14:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L12_try_end; __pyx_L7_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":587 * try: * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_11) { __Pyx_AddTraceback("pyfuse3.fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_9) < 0) __PYX_ERR(1, 587, __pyx_L9_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_e = __pyx_t_7; /*try:*/ { /* "src/handlers.pxi":588 * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * if token.buf_start == NULL: */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 588, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 588, __pyx_L20_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_11); } /* "src/handlers.pxi":587 * try: * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L21; } __pyx_L20_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_11 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14; goto __pyx_L9_except_error; } __pyx_L21:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L8_exception_handled; } goto __pyx_L9_except_error; /* "src/handlers.pxi":585 * token.req = c.req * * try: # <<<<<<<<<<<<<< * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: */ __pyx_L9_except_error:; __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); goto __pyx_L5_error; __pyx_L8_exception_handled:; __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); __pyx_L12_try_end:; } } /* "src/handlers.pxi":595 * ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) * finally: * stdlib.free(token.buf_start) # <<<<<<<<<<<<<< * * if ret != 0: */ /*finally:*/ { /*normal exit:*/{ free(__pyx_cur_scope->__pyx_v_token->buf_start); goto __pyx_L6; } __pyx_L5_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_13 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_21 = __pyx_filename; { free(__pyx_cur_scope->__pyx_v_token->buf_start); } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_5, __pyx_t_4); __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_13; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_21; goto __pyx_L1_error; } __pyx_L6:; } /* "src/handlers.pxi":597 * stdlib.free(token.buf_start) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_12 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_12) { /* "src/handlers.pxi":598 * * if ret != 0: * log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_kp_u_fuse_readdirplus_fuse_reply__fai, __pyx_t_7}; __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":597 * stdlib.free(token.buf_start) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":601 * * * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_releasedir(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_releasedir", 0); /* "src/handlers.pxi":602 * * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.fh = fi.fh */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":603 * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_releasedir_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":604 * cdef _Container c = _Container() * c.req = req * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_releasedir_async(c)) * */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":605 * c.req = req * c.fh = fi.fh * save_retval(fuse_releasedir_async(c)) # <<<<<<<<<<<<<< * * async def fuse_releasedir_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_releasedir_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 605, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":601 * * * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_releasedir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_62generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_61fuse_releasedir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_60fuse_releasedir_async, "fuse_releasedir_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_61fuse_releasedir_async = {"fuse_releasedir_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_61fuse_releasedir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_60fuse_releasedir_async}; static PyObject *__pyx_pw_7pyfuse3_61fuse_releasedir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_releasedir_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 607, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_releasedir_async") < 0)) __PYX_ERR(1, 607, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_releasedir_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 607, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 607, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_60fuse_releasedir_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_60fuse_releasedir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_releasedir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 607, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_62generator20, __pyx_codeobj__23, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_releasedir_async, __pyx_n_s_fuse_releasedir_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_62generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_releasedir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 607, __pyx_L1_error) /* "src/handlers.pxi":610 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.releasedir(c.fh) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":611 * * try: * await operations.releasedir(c.fh) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_releasedir); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 611, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 611, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 611, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 611, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 611, __pyx_L4_error) } } /* "src/handlers.pxi":610 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.releasedir(c.fh) * except FUSEError as e: */ } /* "src/handlers.pxi":615 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":612 * try: * await operations.releasedir(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 612, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":613 * await operations.releasedir(c.fh) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 613, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 613, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":612 * try: * await operations.releasedir(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":610 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.releasedir(c.fh) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":617 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":618 * * if ret != 0: * log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_releasedir_fuse_reply__fail, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":617 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":622 * * * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_fsyncdir(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, int __pyx_v_datasync, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; uint64_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsyncdir", 0); /* "src/handlers.pxi":624 * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.flags = datasync */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":625 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.flags = datasync * c.fh = fi.fh */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":626 * cdef _Container c = _Container() * c.req = req * c.flags = datasync # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_fsyncdir_async(c)) */ __pyx_v_c->flags = __pyx_v_datasync; /* "src/handlers.pxi":627 * c.req = req * c.flags = datasync * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_fsyncdir_async(c)) * */ __pyx_t_2 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_2; /* "src/handlers.pxi":628 * c.flags = datasync * c.fh = fi.fh * save_retval(fuse_fsyncdir_async(c)) # <<<<<<<<<<<<<< * * async def fuse_fsyncdir_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_fsyncdir_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":622 * * * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_65generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_64fuse_fsyncdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_63fuse_fsyncdir_async, "fuse_fsyncdir_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_64fuse_fsyncdir_async = {"fuse_fsyncdir_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_64fuse_fsyncdir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_63fuse_fsyncdir_async}; static PyObject *__pyx_pw_7pyfuse3_64fuse_fsyncdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsyncdir_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 630, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_fsyncdir_async") < 0)) __PYX_ERR(1, 630, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_fsyncdir_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 630, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 630, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_63fuse_fsyncdir_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_63fuse_fsyncdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsyncdir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 630, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_65generator21, __pyx_codeobj__24, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_fsyncdir_async, __pyx_n_s_fuse_fsyncdir_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_65generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsyncdir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 630, __pyx_L1_error) /* "src/handlers.pxi":633 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":634 * * try: * await operations.fsyncdir(c.fh, c.flags != 0) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_fsyncdir); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyBool_FromLong((__pyx_cur_scope->__pyx_v_c->flags != 0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 634, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 634, __pyx_L4_error) } } /* "src/handlers.pxi":633 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: */ } /* "src/handlers.pxi":638 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":635 * try: * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(1, 635, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":636 * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 636, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 636, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/handlers.pxi":635 * try: * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":633 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/handlers.pxi":640 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_18 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_18) { /* "src/handlers.pxi":641 * * if ret != 0: * log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_kp_u_fuse_fsyncdir_fuse_reply__failed, __pyx_t_5}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":640 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":645 * * * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_statfs(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_statfs", 0); /* "src/handlers.pxi":646 * * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * save_retval(fuse_statfs_async(c)) */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":647 * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * save_retval(fuse_statfs_async(c)) * */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":648 * cdef _Container c = _Container() * c.req = req * save_retval(fuse_statfs_async(c)) # <<<<<<<<<<<<<< * * async def fuse_statfs_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_statfs_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 648, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":645 * * * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_statfs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_68generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_67fuse_statfs_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_66fuse_statfs_async, "fuse_statfs_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_67fuse_statfs_async = {"fuse_statfs_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_67fuse_statfs_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_66fuse_statfs_async}; static PyObject *__pyx_pw_7pyfuse3_67fuse_statfs_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_statfs_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 650, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_statfs_async") < 0)) __PYX_ERR(1, 650, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_statfs_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 650, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 650, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_66fuse_statfs_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_66fuse_statfs_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_statfs_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 650, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_68generator22, __pyx_codeobj__25, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_statfs_async, __pyx_n_s_fuse_statfs_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_68generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_statfs_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 650, __pyx_L1_error) /* "src/handlers.pxi":654 * cdef StatvfsData stats * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * stats = await operations.statfs(ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":655 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * stats = await operations.statfs(ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":656 * ctx = get_request_context(c.req) * try: * stats = await operations.statfs(ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_statfs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 656, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 656, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 656, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 656, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_StatvfsData)))) __PYX_ERR(1, 656, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_stats = ((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":655 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * stats = await operations.statfs(ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":660 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_statfs(c.req, &stats.stat) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_statfs(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_stats->stat)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":657 * try: * stats = await operations.statfs(ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_7) { __Pyx_AddTraceback("pyfuse3.fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(1, 657, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":658 * stats = await operations.statfs(ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_statfs(c.req, &stats.stat) */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 658, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 658, __pyx_L16_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_7); } /* "src/handlers.pxi":657 * try: * stats = await operations.statfs(ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_7 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":655 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * stats = await operations.statfs(ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":662 * ret = fuse_reply_statfs(c.req, &stats.stat) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":663 * * if ret != 0: * log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_kp_u_fuse_statfs_fuse_reply__failed_w, __pyx_t_1}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":662 * ret = fuse_reply_statfs(c.req, &stats.stat) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":666 * * * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, # <<<<<<<<<<<<<< * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_setxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_cname, const char *__pyx_v_cvalue, size_t __pyx_v_size, int __pyx_v_flags) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = NULL; PyObject *__pyx_v_value = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setxattr", 0); /* "src/handlers.pxi":668 * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":669 * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.size = size */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":670 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.size = size * c.flags = flags */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":671 * c.req = req * c.ino = ino * c.size = size # <<<<<<<<<<<<<< * c.flags = flags * */ __pyx_v_c->size = __pyx_v_size; /* "src/handlers.pxi":672 * c.ino = ino * c.size = size * c.flags = flags # <<<<<<<<<<<<<< * * name = PyBytes_FromString(cname) */ __pyx_v_c->flags = __pyx_v_flags; /* "src/handlers.pxi":674 * c.flags = flags * * name = PyBytes_FromString(cname) # <<<<<<<<<<<<<< * if c.size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') */ __pyx_t_1 = PyBytes_FromString(__pyx_v_cname); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":675 * * name = PyBytes_FromString(cname) * if c.size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * value = PyBytes_FromStringAndSize(cvalue, c.size) */ __pyx_t_2 = (__pyx_v_c->size > PY_SSIZE_T_MAX); if (unlikely(__pyx_t_2)) { /* "src/handlers.pxi":676 * name = PyBytes_FromString(cname) * if c.size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') # <<<<<<<<<<<<<< * value = PyBytes_FromStringAndSize(cvalue, c.size) * */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_OverflowError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 676, __pyx_L1_error) /* "src/handlers.pxi":675 * * name = PyBytes_FromString(cname) * if c.size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * value = PyBytes_FromStringAndSize(cvalue, c.size) */ } /* "src/handlers.pxi":677 * if c.size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') * value = PyBytes_FromStringAndSize(cvalue, c.size) # <<<<<<<<<<<<<< * * save_retval(fuse_setxattr_async(c, name, value)) */ __pyx_t_1 = PyBytes_FromStringAndSize(__pyx_v_cvalue, ((Py_ssize_t)__pyx_v_c->size)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_value = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":679 * value = PyBytes_FromStringAndSize(cvalue, c.size) * * save_retval(fuse_setxattr_async(c, name, value)) # <<<<<<<<<<<<<< * * async def fuse_setxattr_async (_Container c, name, value): */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fuse_setxattr_async); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_v_name, __pyx_v_value}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":666 * * * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, # <<<<<<<<<<<<<< * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_name); __Pyx_XDECREF(__pyx_v_value); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_71generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_70fuse_setxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_69fuse_setxattr_async, "fuse_setxattr_async(_Container c, name, value)"); static PyMethodDef __pyx_mdef_7pyfuse3_70fuse_setxattr_async = {"fuse_setxattr_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_70fuse_setxattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_69fuse_setxattr_async}; static PyObject *__pyx_pw_7pyfuse3_70fuse_setxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_value = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setxattr_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,&__pyx_n_s_value,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 681, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 681, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_setxattr_async", 1, 3, 3, 1); __PYX_ERR(1, 681, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 681, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_setxattr_async", 1, 3, 3, 2); __PYX_ERR(1, 681, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_setxattr_async") < 0)) __PYX_ERR(1, 681, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; __pyx_v_value = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_setxattr_async", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 681, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 681, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_69fuse_setxattr_async(__pyx_self, __pyx_v_c, __pyx_v_name, __pyx_v_value); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_69fuse_setxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_value) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setxattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 681, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __pyx_cur_scope->__pyx_v_value = __pyx_v_value; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_value); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_value); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_71generator23, __pyx_codeobj__26, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_setxattr_async, __pyx_n_s_fuse_setxattr_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 681, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_71generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; int __pyx_t_16; char const *__pyx_t_17; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; PyObject *__pyx_t_22 = NULL; PyObject *__pyx_t_23 = NULL; char const *__pyx_t_24; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setxattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L21_resume_from_await; case 2: goto __pyx_L34_resume_from_await; case 3: goto __pyx_L35_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 681, __pyx_L1_error) /* "src/handlers.pxi":685 * * # Special case for deadlock debugging * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': # <<<<<<<<<<<<<< * operations.stacktrace() * fuse_reply_err(c.req, 0) */ __pyx_t_2 = (__pyx_cur_scope->__pyx_v_c->ino == FUSE_ROOT_ID); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_name, __pyx_n_u_fuse_stacktrace, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 685, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* "src/handlers.pxi":686 * # Special case for deadlock debugging * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': * operations.stacktrace() # <<<<<<<<<<<<<< * fuse_reply_err(c.req, 0) * return */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_stacktrace); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":687 * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': * operations.stacktrace() * fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * return * */ (void)(fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0)); /* "src/handlers.pxi":688 * operations.stacktrace() * fuse_reply_err(c.req, 0) * return # <<<<<<<<<<<<<< * * # Make sure we know all the flags */ __Pyx_XDECREF(__pyx_r); __pyx_r = NULL; goto __pyx_L0; /* "src/handlers.pxi":685 * * # Special case for deadlock debugging * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': # <<<<<<<<<<<<<< * operations.stacktrace() * fuse_reply_err(c.req, 0) */ } /* "src/handlers.pxi":691 * * # Make sure we know all the flags * if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): # <<<<<<<<<<<<<< * raise ValueError('unknown flag(s): %o' % c.flags) * */ __pyx_t_1 = ((__pyx_cur_scope->__pyx_v_c->flags & (~(XATTR_CREATE | XATTR_REPLACE))) != 0); if (unlikely(__pyx_t_1)) { /* "src/handlers.pxi":692 * # Make sure we know all the flags * if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): * raise ValueError('unknown flag(s): %o' % c.flags) # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_c->flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_unknown_flag_s_o, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 692, __pyx_L1_error) /* "src/handlers.pxi":691 * * # Make sure we know all the flags * if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): # <<<<<<<<<<<<<< * raise ValueError('unknown flag(s): %o' % c.flags) * */ } /* "src/handlers.pxi":694 * raise ValueError('unknown flag(s): %o' % c.flags) * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist */ __pyx_t_3 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_3; __pyx_t_3 = 0; /* "src/handlers.pxi":695 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: */ { __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); /*try:*/ { /* "src/handlers.pxi":696 * ctx = get_request_context(c.req) * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist # <<<<<<<<<<<<<< * try: * await operations.getxattr(c.ino, name, ctx) */ __pyx_t_1 = ((__pyx_cur_scope->__pyx_v_c->flags & XATTR_CREATE) != 0); if (__pyx_t_1) { /* "src/handlers.pxi":697 * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); /*try:*/ { /* "src/handlers.pxi":698 * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: * await operations.getxattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * if e.errno != ENOATTR: */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_getxattr); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 698, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 698, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_13, __pyx_t_5, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 698, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_4 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_5 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L21_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 698, __pyx_L15_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 698, __pyx_L15_error) } } /* "src/handlers.pxi":697 * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":703 * raise * else: * raise FUSEError(errno.EEXIST) # <<<<<<<<<<<<<< * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist */ /*else:*/ { __pyx_t_3 = __Pyx_PyInt_From_int(EEXIST); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 703, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 703, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 703, __pyx_L17_except_error) } __pyx_L15_error:; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":699 * try: * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * if e.errno != ENOATTR: * raise */ __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_6) { __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(1, 699, __pyx_L17_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_e = __pyx_t_3; /*try:*/ { /* "src/handlers.pxi":700 * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: * if e.errno != ENOATTR: # <<<<<<<<<<<<<< * raise * else: */ __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 700, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyInt_From_int(ENOATTR); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 700, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = PyObject_RichCompare(__pyx_t_13, __pyx_t_14, Py_NE); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 700, __pyx_L27_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 700, __pyx_L27_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_t_1)) { /* "src/handlers.pxi":701 * except FUSEError as e: * if e.errno != ENOATTR: * raise # <<<<<<<<<<<<<< * else: * raise FUSEError(errno.EEXIST) */ __Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_3, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0; __PYX_ERR(1, 701, __pyx_L27_error) /* "src/handlers.pxi":700 * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: * if e.errno != ENOATTR: # <<<<<<<<<<<<<< * raise * else: */ } } /* "src/handlers.pxi":699 * try: * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * if e.errno != ENOATTR: * raise */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L28; } __pyx_L27_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_6 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L17_except_error; } __pyx_L28:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L16_exception_handled; } goto __pyx_L17_except_error; /* "src/handlers.pxi":697 * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ __pyx_L17_except_error:; __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); goto __pyx_L8_error; __pyx_L16_exception_handled:; __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); } /* "src/handlers.pxi":696 * ctx = get_request_context(c.req) * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist # <<<<<<<<<<<<<< * try: * await operations.getxattr(c.ino, name, ctx) */ goto __pyx_L14; } /* "src/handlers.pxi":705 * raise FUSEError(errno.EEXIST) * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * */ __pyx_t_1 = ((__pyx_cur_scope->__pyx_v_c->flags & XATTR_REPLACE) != 0); if (__pyx_t_1) { /* "src/handlers.pxi":706 * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist * await operations.getxattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * * await operations.setxattr(c.ino, name, value, ctx) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_getxattr); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 706, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 706, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = NULL; __pyx_t_16 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_16 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_15, __pyx_t_4, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_16, 3+__pyx_t_16); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 706, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L34_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 706, __pyx_L8_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 706, __pyx_L8_error) } } /* "src/handlers.pxi":705 * raise FUSEError(errno.EEXIST) * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * */ } __pyx_L14:; /* "src/handlers.pxi":708 * await operations.getxattr(c.ino, name, ctx) * * await operations.setxattr(c.ino, name, value, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_setxattr); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 708, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 708, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = NULL; __pyx_t_16 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_16 = 1; } } { PyObject *__pyx_callargs[5] = {__pyx_t_15, __pyx_t_4, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_value, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_16, 4+__pyx_t_16); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 708, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L35_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 708, __pyx_L8_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 708, __pyx_L8_error) } } /* "src/handlers.pxi":695 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: */ } /* "src/handlers.pxi":712 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":709 * * await operations.setxattr(c.ino, name, value, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_16) { __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(1, 709, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_e, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); /*try:*/ { /* "src/handlers.pxi":710 * await operations.setxattr(c.ino, name, value, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 710, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_15); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 710, __pyx_L41_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_16); } /* "src/handlers.pxi":709 * * await operations.setxattr(c.ino, name, value, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L42; } __pyx_L41_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_16 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_24 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_11, __pyx_t_10); __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_24; goto __pyx_L10_except_error; } __pyx_L42:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; /* "src/handlers.pxi":695 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); __pyx_L13_try_end:; } /* "src/handlers.pxi":714 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_1 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_1) { /* "src/handlers.pxi":715 * * if ret != 0: * log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_15, __pyx_kp_u_fuse_setxattr_fuse_reply__failed, __pyx_t_3}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "src/handlers.pxi":714 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":718 * * * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, # <<<<<<<<<<<<<< * size_t size): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_getxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_name, size_t __pyx_v_size) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getxattr", 0); /* "src/handlers.pxi":720 * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, * size_t size): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":721 * size_t size): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.size = size */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":722 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.size = size * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":723 * c.req = req * c.ino = ino * c.size = size # <<<<<<<<<<<<<< * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->size = __pyx_v_size; /* "src/handlers.pxi":724 * c.ino = ino * c.size = size * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_getxattr_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_getxattr_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 724, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":718 * * * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, # <<<<<<<<<<<<<< * size_t size): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_74generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_73fuse_getxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_72fuse_getxattr_async, "fuse_getxattr_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_73fuse_getxattr_async = {"fuse_getxattr_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_73fuse_getxattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_72fuse_getxattr_async}; static PyObject *__pyx_pw_7pyfuse3_73fuse_getxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getxattr_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 726, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 726, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_getxattr_async", 1, 2, 2, 1); __PYX_ERR(1, 726, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_getxattr_async") < 0)) __PYX_ERR(1, 726, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_getxattr_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 726, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 726, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_72fuse_getxattr_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_72fuse_getxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getxattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 726, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_74generator24, __pyx_codeobj__27, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_getxattr_async, __pyx_n_s_fuse_getxattr_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 726, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_74generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getxattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 726, __pyx_L1_error) /* "src/handlers.pxi":732 * cdef char *cbuf * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * buf = await operations.getxattr(c.ino, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":733 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":734 * ctx = get_request_context(c.req) * try: * buf = await operations.getxattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_getxattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 734, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 734, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 734, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 734, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 734, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_buf = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":733 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":738 * ret = fuse_reply_err(c.req, e.errno) * else: * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) # <<<<<<<<<<<<<< * len_ = len_s # guaranteed positive * */ /*else:*/ { __pyx_t_8 = PyBytes_AsStringAndSize(__pyx_cur_scope->__pyx_v_buf, (&__pyx_cur_scope->__pyx_v_cbuf), ((Py_ssize_t *)(&__pyx_cur_scope->__pyx_v_len_s))); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 738, __pyx_L6_except_error) /* "src/handlers.pxi":739 * else: * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) * len_ = len_s # guaranteed positive # <<<<<<<<<<<<<< * * if c.size == 0: */ __pyx_cur_scope->__pyx_v_len_ = ((size_t)__pyx_cur_scope->__pyx_v_len_s); /* "src/handlers.pxi":741 * len_ = len_s # guaranteed positive * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_c->size == 0); if (__pyx_t_9) { /* "src/handlers.pxi":742 * * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) # <<<<<<<<<<<<<< * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_xattr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); /* "src/handlers.pxi":741 * len_ = len_s # guaranteed positive * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ goto __pyx_L11; } /* "src/handlers.pxi":743 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_len_ <= __pyx_cur_scope->__pyx_v_c->size); if (__pyx_t_9) { /* "src/handlers.pxi":744 * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, errno.ERANGE) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_cbuf, __pyx_cur_scope->__pyx_v_len_); /* "src/handlers.pxi":743 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ goto __pyx_L11; } /* "src/handlers.pxi":746 * ret = fuse_reply_buf(c.req, cbuf, len_) * else: * ret = fuse_reply_err(c.req, errno.ERANGE) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, ERANGE); } __pyx_L11:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":735 * try: * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 735, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":736 * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 736, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 736, __pyx_L17_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":735 * try: * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L18; } __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_8 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L18:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":733 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":748 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_9) { /* "src/handlers.pxi":749 * * if ret != 0: * log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_getxattr_fuse_reply__failed, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":748 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":752 * * * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_listxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, size_t __pyx_v_size) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_listxattr", 0); /* "src/handlers.pxi":753 * * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":754 * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.size = size */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":755 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.size = size * save_retval(fuse_listxattr_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":756 * c.req = req * c.ino = ino * c.size = size # <<<<<<<<<<<<<< * save_retval(fuse_listxattr_async(c)) * */ __pyx_v_c->size = __pyx_v_size; /* "src/handlers.pxi":757 * c.ino = ino * c.size = size * save_retval(fuse_listxattr_async(c)) # <<<<<<<<<<<<<< * * async def fuse_listxattr_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_listxattr_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 757, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":752 * * * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_listxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_77generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_76fuse_listxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_75fuse_listxattr_async, "fuse_listxattr_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_76fuse_listxattr_async = {"fuse_listxattr_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_76fuse_listxattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_75fuse_listxattr_async}; static PyObject *__pyx_pw_7pyfuse3_76fuse_listxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_listxattr_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 759, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_listxattr_async") < 0)) __PYX_ERR(1, 759, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_listxattr_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 759, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 759, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_75fuse_listxattr_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_75fuse_listxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_listxattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 759, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_77generator25, __pyx_codeobj__28, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_listxattr_async, __pyx_n_s_fuse_listxattr_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 759, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_77generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_listxattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 759, __pyx_L1_error) /* "src/handlers.pxi":766 * * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * res = await operations.listxattr(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":767 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":768 * ctx = get_request_context(c.req) * try: * res = await operations.listxattr(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_listxattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 768, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 768, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 768, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 768, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 768, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_res = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":767 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":772 * ret = fuse_reply_err(c.req, e.errno) * else: * buf = b'\0'.join(res) + b'\0' # <<<<<<<<<<<<<< * * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) */ /*else:*/ { __pyx_t_1 = __Pyx_PyBytes_Join(__pyx_kp_b__29, __pyx_cur_scope->__pyx_v_res); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 772, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_b__29); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 772, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_buf = __pyx_t_5; __pyx_t_5 = 0; /* "src/handlers.pxi":774 * buf = b'\0'.join(res) + b'\0' * * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) # <<<<<<<<<<<<<< * len_ = len_s # guaranteed positive * */ __pyx_t_8 = PyBytes_AsStringAndSize(__pyx_cur_scope->__pyx_v_buf, (&__pyx_cur_scope->__pyx_v_cbuf), ((Py_ssize_t *)(&__pyx_cur_scope->__pyx_v_len_s))); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 774, __pyx_L6_except_error) /* "src/handlers.pxi":775 * * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) * len_ = len_s # guaranteed positive # <<<<<<<<<<<<<< * * if len_ == 1: # No attributes */ __pyx_cur_scope->__pyx_v_len_ = ((size_t)__pyx_cur_scope->__pyx_v_len_s); /* "src/handlers.pxi":777 * len_ = len_s # guaranteed positive * * if len_ == 1: # No attributes # <<<<<<<<<<<<<< * len_ = 0 * */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_len_ == 1); if (__pyx_t_9) { /* "src/handlers.pxi":778 * * if len_ == 1: # No attributes * len_ = 0 # <<<<<<<<<<<<<< * * if c.size == 0: */ __pyx_cur_scope->__pyx_v_len_ = 0; /* "src/handlers.pxi":777 * len_ = len_s # guaranteed positive * * if len_ == 1: # No attributes # <<<<<<<<<<<<<< * len_ = 0 * */ } /* "src/handlers.pxi":780 * len_ = 0 * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_c->size == 0); if (__pyx_t_9) { /* "src/handlers.pxi":781 * * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) # <<<<<<<<<<<<<< * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_xattr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); /* "src/handlers.pxi":780 * len_ = 0 * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ goto __pyx_L12; } /* "src/handlers.pxi":782 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_len_ <= __pyx_cur_scope->__pyx_v_c->size); if (__pyx_t_9) { /* "src/handlers.pxi":783 * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, errno.ERANGE) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_cbuf, __pyx_cur_scope->__pyx_v_len_); /* "src/handlers.pxi":782 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ goto __pyx_L12; } /* "src/handlers.pxi":785 * ret = fuse_reply_buf(c.req, cbuf, len_) * else: * ret = fuse_reply_err(c.req, errno.ERANGE) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, ERANGE); } __pyx_L12:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":769 * try: * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(1, 769, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/handlers.pxi":770 * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * buf = b'\0'.join(res) + b'\0' */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 770, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 770, __pyx_L18_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":769 * try: * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L19; } __pyx_L18_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_8 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; goto __pyx_L6_except_error; } __pyx_L19:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":767 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":787 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_9) { /* "src/handlers.pxi":788 * * if ret != 0: * log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_listxattr_fuse_reply__faile, __pyx_t_1}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":787 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":791 * * * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_removexattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_removexattr", 0); /* "src/handlers.pxi":792 * * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":793 * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":794 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":795 * c.req = req * c.ino = ino * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_removexattr_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_removexattr_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":791 * * * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_removexattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_80generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_79fuse_removexattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_78fuse_removexattr_async, "fuse_removexattr_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_79fuse_removexattr_async = {"fuse_removexattr_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_79fuse_removexattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_78fuse_removexattr_async}; static PyObject *__pyx_pw_7pyfuse3_79fuse_removexattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_removexattr_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 797, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 797, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_removexattr_async", 1, 2, 2, 1); __PYX_ERR(1, 797, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_removexattr_async") < 0)) __PYX_ERR(1, 797, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_removexattr_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 797, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 797, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_78fuse_removexattr_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_78fuse_removexattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_removexattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 797, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_80generator26, __pyx_codeobj__30, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_removexattr_async, __pyx_n_s_fuse_removexattr_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 797, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_80generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_removexattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 797, __pyx_L1_error) /* "src/handlers.pxi":800 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.removexattr(c.ino, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":801 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":802 * ctx = get_request_context(c.req) * try: * await operations.removexattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_removexattr); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 802, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 802, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 802, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 802, __pyx_L4_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(1, 802, __pyx_L4_error) } } /* "src/handlers.pxi":801 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":806 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/handlers.pxi":803 * try: * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(1, 803, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":804 * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 804, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 804, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/handlers.pxi":803 * try: * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":801 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":808 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_17 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_17) { /* "src/handlers.pxi":809 * * if ret != 0: * log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_removexattr_fuse_reply__fai, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/handlers.pxi":808 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":812 * * * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_access(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, int __pyx_v_mask) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_access", 0); /* "src/handlers.pxi":813 * * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":814 * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.flags = mask */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":815 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.flags = mask * save_retval(fuse_access_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/handlers.pxi":816 * c.req = req * c.ino = ino * c.flags = mask # <<<<<<<<<<<<<< * save_retval(fuse_access_async(c)) * */ __pyx_v_c->flags = __pyx_v_mask; /* "src/handlers.pxi":817 * c.ino = ino * c.flags = mask * save_retval(fuse_access_async(c)) # <<<<<<<<<<<<<< * * async def fuse_access_async (_Container c): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_access_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 817, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":812 * * * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_access", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_83generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_82fuse_access_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_81fuse_access_async, "fuse_access_async(_Container c)"); static PyMethodDef __pyx_mdef_7pyfuse3_82fuse_access_async = {"fuse_access_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_82fuse_access_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_81fuse_access_async}; static PyObject *__pyx_pw_7pyfuse3_82fuse_access_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_access_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 819, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_access_async") < 0)) __PYX_ERR(1, 819, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_access_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 819, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 819, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_81fuse_access_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_81fuse_access_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_access_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 819, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_83generator27, __pyx_codeobj__31, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_access_async, __pyx_n_s_fuse_access_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 819, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_83generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_access_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 819, __pyx_L1_error) /* "src/handlers.pxi":821 * async def fuse_access_async (_Container c): * cdef int ret * cdef int mask = c.flags # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_c->flags; __pyx_cur_scope->__pyx_v_mask = __pyx_t_1; /* "src/handlers.pxi":823 * cdef int mask = c.flags * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * allowed = await operations.access(c.ino, mask, ctx) */ __pyx_t_2 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":824 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "src/handlers.pxi":825 * ctx = get_request_context(c.req) * try: * allowed = await operations.access(c.ino, mask, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_access); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_mask); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_1 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_1 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 3+__pyx_t_1); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_1 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_2 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 825, __pyx_L4_error) __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2); } else { __pyx_t_2 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(1, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_allowed = __pyx_t_2; __pyx_t_2 = 0; /* "src/handlers.pxi":824 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":829 * ret = fuse_reply_err(c.req, e.errno) * else: * if allowed: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, 0) * else: */ /*else:*/ { __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_allowed); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 829, __pyx_L6_except_error) if (__pyx_t_10) { /* "src/handlers.pxi":830 * else: * if allowed: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, EACCES) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); /* "src/handlers.pxi":829 * ret = fuse_reply_err(c.req, e.errno) * else: * if allowed: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, 0) * else: */ goto __pyx_L11; } /* "src/handlers.pxi":832 * ret = fuse_reply_err(c.req, 0) * else: * ret = fuse_reply_err(c.req, EACCES) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, EACCES); } __pyx_L11:; } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":826 * try: * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_1 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_1) { __Pyx_AddTraceback("pyfuse3.fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_6, &__pyx_t_8) < 0) __PYX_ERR(1, 826, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/handlers.pxi":827 * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * if allowed: */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 827, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 827, __pyx_L17_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_1); } /* "src/handlers.pxi":826 * try: * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L18; } __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_1 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_1; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L18:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":824 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); __pyx_L9_try_end:; } /* "src/handlers.pxi":834 * ret = fuse_reply_err(c.req, EACCES) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_10) { /* "src/handlers.pxi":835 * * if ret != 0: * log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_access_fuse_reply__failed_w, __pyx_t_6}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":834 * ret = fuse_reply_err(c.req, EACCES) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/handlers.pxi":839 * * * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_create(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_create", 0); /* "src/handlers.pxi":841 * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__Container)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":842 * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.mode = mode */ __pyx_v_c->req = __pyx_v_req; /* "src/handlers.pxi":843 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.mode = mode * c.fi = fi[0] */ __pyx_v_c->parent = __pyx_v_parent; /* "src/handlers.pxi":844 * c.req = req * c.parent = parent * c.mode = mode # <<<<<<<<<<<<<< * c.fi = fi[0] * save_retval(fuse_create_async(c, PyBytes_FromString(name))) */ __pyx_v_c->mode = __pyx_v_mode; /* "src/handlers.pxi":845 * c.parent = parent * c.mode = mode * c.fi = fi[0] # <<<<<<<<<<<<<< * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->fi = (__pyx_v_fi[0]); /* "src/handlers.pxi":846 * c.mode = mode * c.fi = fi[0] * save_retval(fuse_create_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_create_async (_Container c, name): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fuse_create_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_c), __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 846, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":839 * * * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_create", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_86generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/handlers.pxi":848 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_85fuse_create_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_84fuse_create_async, "fuse_create_async(_Container c, name)"); static PyMethodDef __pyx_mdef_7pyfuse3_85fuse_create_async = {"fuse_create_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_85fuse_create_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_84fuse_create_async}; static PyObject *__pyx_pw_7pyfuse3_85fuse_create_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_create_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,&__pyx_n_s_name,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 848, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 848, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_create_async", 1, 2, 2, 1); __PYX_ERR(1, 848, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_create_async") < 0)) __PYX_ERR(1, 848, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_create_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 848, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(1, 848, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_84fuse_create_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_84fuse_create_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_create_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_create_async(__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 848, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_86generator28, __pyx_codeobj__32, (PyObject *) __pyx_cur_scope, __pyx_n_s_fuse_create_async, __pyx_n_s_fuse_create_async, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 848, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_86generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_create_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 848, __pyx_L1_error) /* "src/handlers.pxi":853 * cdef FileInfo fi * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":854 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/handlers.pxi":855 * ctx = get_request_context(c.req) * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_n_s_create); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 855, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 855, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_mode_t(__pyx_cur_scope->__pyx_v_c->mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 855, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_c->fi.flags); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 855, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } { PyObject *__pyx_callargs[6] = {__pyx_t_9, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 5+__pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 855, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 855, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(1, 855, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_tmp = __pyx_t_1; __pyx_t_1 = 0; /* "src/handlers.pxi":854 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: */ } /* "src/handlers.pxi":859 * ret = fuse_reply_err(c.req, e.errno) * else: * fi = tmp[0] # <<<<<<<<<<<<<< * entry = tmp[1] * fi._copy_to_fuse(&c.fi) */ /*else:*/ { __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_tmp, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 859, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7pyfuse3_FileInfo)))) __PYX_ERR(1, 859, __pyx_L6_except_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_fi = ((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_t_5); __pyx_t_5 = 0; /* "src/handlers.pxi":860 * else: * fi = tmp[0] * entry = tmp[1] # <<<<<<<<<<<<<< * fi._copy_to_fuse(&c.fi) * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) */ __pyx_t_5 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_tmp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 860, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(1, 860, __pyx_L6_except_error) __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":861 * fi = tmp[0] * entry = tmp[1] * fi._copy_to_fuse(&c.fi) # <<<<<<<<<<<<<< * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_7pyfuse3_FileInfo *)__pyx_cur_scope->__pyx_v_fi->__pyx_vtab)->_copy_to_fuse(__pyx_cur_scope->__pyx_v_fi, (&__pyx_cur_scope->__pyx_v_c->fi)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 861, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/handlers.pxi":862 * entry = tmp[1] * fi._copy_to_fuse(&c.fi) * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_create(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param), (&__pyx_cur_scope->__pyx_v_c->fi)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/handlers.pxi":856 * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(1, 856, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* "src/handlers.pxi":857 * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * fi = tmp[0] */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 857, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 857, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/handlers.pxi":856 * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/handlers.pxi":854 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/handlers.pxi":864 * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/handlers.pxi":865 * * if ret != 0: * log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_11 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_kp_u_fuse_create_fuse_reply__failed_w, __pyx_t_5}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/handlers.pxi":864 * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/handlers.pxi":848 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":13 * ''' * * cdef void save_retval(object val): # <<<<<<<<<<<<<< * global py_retval * if py_retval is not None and val is not None: */ static void __pyx_f_7pyfuse3_save_retval(PyObject *__pyx_v_val) { __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("save_retval", 0); /* "src/internal.pxi":15 * cdef void save_retval(object val): * global py_retval * if py_retval is not None and val is not None: # <<<<<<<<<<<<<< * log.error('py_retval was not awaited - please report a bug at ' * 'https://github.com/libfuse/pyfuse3/issues!') */ __pyx_t_2 = (__pyx_v_7pyfuse3_py_retval != Py_None); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (__pyx_v_val != Py_None); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "src/internal.pxi":16 * global py_retval * if py_retval is not None and val is not None: * log.error('py_retval was not awaited - please report a bug at ' # <<<<<<<<<<<<<< * 'https://github.com/libfuse/pyfuse3/issues!') * py_retval = val */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_py_retval_was_not_awaited_please}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/internal.pxi":15 * cdef void save_retval(object val): * global py_retval * if py_retval is not None and val is not None: # <<<<<<<<<<<<<< * log.error('py_retval was not awaited - please report a bug at ' * 'https://github.com/libfuse/pyfuse3/issues!') */ } /* "src/internal.pxi":18 * log.error('py_retval was not awaited - please report a bug at ' * 'https://github.com/libfuse/pyfuse3/issues!') * py_retval = val # <<<<<<<<<<<<<< * * cdef object get_request_context(fuse_req_t req): */ __Pyx_INCREF(__pyx_v_val); __Pyx_XGOTREF(__pyx_v_7pyfuse3_py_retval); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_py_retval, __pyx_v_val); __Pyx_GIVEREF(__pyx_v_val); /* "src/internal.pxi":13 * ''' * * cdef void save_retval(object val): # <<<<<<<<<<<<<< * global py_retval * if py_retval is not None and val is not None: */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.save_retval", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "src/internal.pxi":20 * py_retval = val * * cdef object get_request_context(fuse_req_t req): # <<<<<<<<<<<<<< * '''Get RequestContext() object''' * */ static PyObject *__pyx_f_7pyfuse3_get_request_context(fuse_req_t __pyx_v_req) { const struct fuse_ctx *__pyx_v_context; struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_ctx = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; pid_t __pyx_t_2; uid_t __pyx_t_3; gid_t __pyx_t_4; mode_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_request_context", 0); /* "src/internal.pxi":26 * cdef RequestContext ctx * * context = fuse_req_ctx(req) # <<<<<<<<<<<<<< * ctx = RequestContext.__new__(RequestContext) * ctx.pid = context.pid */ __pyx_v_context = fuse_req_ctx(__pyx_v_req); /* "src/internal.pxi":27 * * context = fuse_req_ctx(req) * ctx = RequestContext.__new__(RequestContext) # <<<<<<<<<<<<<< * ctx.pid = context.pid * ctx.uid = context.uid */ __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyfuse3_RequestContext(((PyTypeObject *)__pyx_ptype_7pyfuse3_RequestContext), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 27, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); __pyx_v_ctx = ((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":28 * context = fuse_req_ctx(req) * ctx = RequestContext.__new__(RequestContext) * ctx.pid = context.pid # <<<<<<<<<<<<<< * ctx.uid = context.uid * ctx.gid = context.gid */ __pyx_t_2 = __pyx_v_context->pid; __pyx_v_ctx->pid = __pyx_t_2; /* "src/internal.pxi":29 * ctx = RequestContext.__new__(RequestContext) * ctx.pid = context.pid * ctx.uid = context.uid # <<<<<<<<<<<<<< * ctx.gid = context.gid * ctx.umask = context.umask */ __pyx_t_3 = __pyx_v_context->uid; __pyx_v_ctx->uid = __pyx_t_3; /* "src/internal.pxi":30 * ctx.pid = context.pid * ctx.uid = context.uid * ctx.gid = context.gid # <<<<<<<<<<<<<< * ctx.umask = context.umask * */ __pyx_t_4 = __pyx_v_context->gid; __pyx_v_ctx->gid = __pyx_t_4; /* "src/internal.pxi":31 * ctx.uid = context.uid * ctx.gid = context.gid * ctx.umask = context.umask # <<<<<<<<<<<<<< * * return ctx */ __pyx_t_5 = __pyx_v_context->umask; __pyx_v_ctx->umask = __pyx_t_5; /* "src/internal.pxi":33 * ctx.umask = context.umask * * return ctx # <<<<<<<<<<<<<< * * cdef void init_fuse_ops(): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_ctx); __pyx_r = ((PyObject *)__pyx_v_ctx); goto __pyx_L0; /* "src/internal.pxi":20 * py_retval = val * * cdef object get_request_context(fuse_req_t req): # <<<<<<<<<<<<<< * '''Get RequestContext() object''' * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.get_request_context", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_ctx); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":35 * return ctx * * cdef void init_fuse_ops(): # <<<<<<<<<<<<<< * '''Initialize fuse_lowlevel_ops structure''' * */ static void __pyx_f_7pyfuse3_init_fuse_ops(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("init_fuse_ops", 0); /* "src/internal.pxi":38 * '''Initialize fuse_lowlevel_ops structure''' * * string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops)) # <<<<<<<<<<<<<< * * fuse_ops.init = fuse_init */ (void)(memset((&__pyx_v_7pyfuse3_fuse_ops), 0, (sizeof(struct fuse_lowlevel_ops)))); /* "src/internal.pxi":40 * string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops)) * * fuse_ops.init = fuse_init # <<<<<<<<<<<<<< * fuse_ops.lookup = fuse_lookup * fuse_ops.forget = fuse_forget */ __pyx_v_7pyfuse3_fuse_ops.init = __pyx_f_7pyfuse3_fuse_init; /* "src/internal.pxi":41 * * fuse_ops.init = fuse_init * fuse_ops.lookup = fuse_lookup # <<<<<<<<<<<<<< * fuse_ops.forget = fuse_forget * fuse_ops.getattr = fuse_getattr */ __pyx_v_7pyfuse3_fuse_ops.lookup = __pyx_f_7pyfuse3_fuse_lookup; /* "src/internal.pxi":42 * fuse_ops.init = fuse_init * fuse_ops.lookup = fuse_lookup * fuse_ops.forget = fuse_forget # <<<<<<<<<<<<<< * fuse_ops.getattr = fuse_getattr * fuse_ops.setattr = fuse_setattr */ __pyx_v_7pyfuse3_fuse_ops.forget = __pyx_f_7pyfuse3_fuse_forget; /* "src/internal.pxi":43 * fuse_ops.lookup = fuse_lookup * fuse_ops.forget = fuse_forget * fuse_ops.getattr = fuse_getattr # <<<<<<<<<<<<<< * fuse_ops.setattr = fuse_setattr * fuse_ops.readlink = fuse_readlink */ __pyx_v_7pyfuse3_fuse_ops.getattr = __pyx_f_7pyfuse3_fuse_getattr; /* "src/internal.pxi":44 * fuse_ops.forget = fuse_forget * fuse_ops.getattr = fuse_getattr * fuse_ops.setattr = fuse_setattr # <<<<<<<<<<<<<< * fuse_ops.readlink = fuse_readlink * fuse_ops.mknod = fuse_mknod */ __pyx_v_7pyfuse3_fuse_ops.setattr = __pyx_f_7pyfuse3_fuse_setattr; /* "src/internal.pxi":45 * fuse_ops.getattr = fuse_getattr * fuse_ops.setattr = fuse_setattr * fuse_ops.readlink = fuse_readlink # <<<<<<<<<<<<<< * fuse_ops.mknod = fuse_mknod * fuse_ops.mkdir = fuse_mkdir */ __pyx_v_7pyfuse3_fuse_ops.readlink = __pyx_f_7pyfuse3_fuse_readlink; /* "src/internal.pxi":46 * fuse_ops.setattr = fuse_setattr * fuse_ops.readlink = fuse_readlink * fuse_ops.mknod = fuse_mknod # <<<<<<<<<<<<<< * fuse_ops.mkdir = fuse_mkdir * fuse_ops.unlink = fuse_unlink */ __pyx_v_7pyfuse3_fuse_ops.mknod = __pyx_f_7pyfuse3_fuse_mknod; /* "src/internal.pxi":47 * fuse_ops.readlink = fuse_readlink * fuse_ops.mknod = fuse_mknod * fuse_ops.mkdir = fuse_mkdir # <<<<<<<<<<<<<< * fuse_ops.unlink = fuse_unlink * fuse_ops.rmdir = fuse_rmdir */ __pyx_v_7pyfuse3_fuse_ops.mkdir = __pyx_f_7pyfuse3_fuse_mkdir; /* "src/internal.pxi":48 * fuse_ops.mknod = fuse_mknod * fuse_ops.mkdir = fuse_mkdir * fuse_ops.unlink = fuse_unlink # <<<<<<<<<<<<<< * fuse_ops.rmdir = fuse_rmdir * fuse_ops.symlink = fuse_symlink */ __pyx_v_7pyfuse3_fuse_ops.unlink = __pyx_f_7pyfuse3_fuse_unlink; /* "src/internal.pxi":49 * fuse_ops.mkdir = fuse_mkdir * fuse_ops.unlink = fuse_unlink * fuse_ops.rmdir = fuse_rmdir # <<<<<<<<<<<<<< * fuse_ops.symlink = fuse_symlink * fuse_ops.rename = fuse_rename */ __pyx_v_7pyfuse3_fuse_ops.rmdir = __pyx_f_7pyfuse3_fuse_rmdir; /* "src/internal.pxi":50 * fuse_ops.unlink = fuse_unlink * fuse_ops.rmdir = fuse_rmdir * fuse_ops.symlink = fuse_symlink # <<<<<<<<<<<<<< * fuse_ops.rename = fuse_rename * fuse_ops.link = fuse_link */ __pyx_v_7pyfuse3_fuse_ops.symlink = __pyx_f_7pyfuse3_fuse_symlink; /* "src/internal.pxi":51 * fuse_ops.rmdir = fuse_rmdir * fuse_ops.symlink = fuse_symlink * fuse_ops.rename = fuse_rename # <<<<<<<<<<<<<< * fuse_ops.link = fuse_link * fuse_ops.open = fuse_open */ __pyx_v_7pyfuse3_fuse_ops.rename = __pyx_f_7pyfuse3_fuse_rename; /* "src/internal.pxi":52 * fuse_ops.symlink = fuse_symlink * fuse_ops.rename = fuse_rename * fuse_ops.link = fuse_link # <<<<<<<<<<<<<< * fuse_ops.open = fuse_open * fuse_ops.read = fuse_read */ __pyx_v_7pyfuse3_fuse_ops.link = __pyx_f_7pyfuse3_fuse_link; /* "src/internal.pxi":53 * fuse_ops.rename = fuse_rename * fuse_ops.link = fuse_link * fuse_ops.open = fuse_open # <<<<<<<<<<<<<< * fuse_ops.read = fuse_read * fuse_ops.write = fuse_write */ __pyx_v_7pyfuse3_fuse_ops.open = __pyx_f_7pyfuse3_fuse_open; /* "src/internal.pxi":54 * fuse_ops.link = fuse_link * fuse_ops.open = fuse_open * fuse_ops.read = fuse_read # <<<<<<<<<<<<<< * fuse_ops.write = fuse_write * fuse_ops.flush = fuse_flush */ __pyx_v_7pyfuse3_fuse_ops.read = __pyx_f_7pyfuse3_fuse_read; /* "src/internal.pxi":55 * fuse_ops.open = fuse_open * fuse_ops.read = fuse_read * fuse_ops.write = fuse_write # <<<<<<<<<<<<<< * fuse_ops.flush = fuse_flush * fuse_ops.release = fuse_release */ __pyx_v_7pyfuse3_fuse_ops.write = __pyx_f_7pyfuse3_fuse_write; /* "src/internal.pxi":56 * fuse_ops.read = fuse_read * fuse_ops.write = fuse_write * fuse_ops.flush = fuse_flush # <<<<<<<<<<<<<< * fuse_ops.release = fuse_release * fuse_ops.fsync = fuse_fsync */ __pyx_v_7pyfuse3_fuse_ops.flush = __pyx_f_7pyfuse3_fuse_flush; /* "src/internal.pxi":57 * fuse_ops.write = fuse_write * fuse_ops.flush = fuse_flush * fuse_ops.release = fuse_release # <<<<<<<<<<<<<< * fuse_ops.fsync = fuse_fsync * fuse_ops.opendir = fuse_opendir */ __pyx_v_7pyfuse3_fuse_ops.release = __pyx_f_7pyfuse3_fuse_release; /* "src/internal.pxi":58 * fuse_ops.flush = fuse_flush * fuse_ops.release = fuse_release * fuse_ops.fsync = fuse_fsync # <<<<<<<<<<<<<< * fuse_ops.opendir = fuse_opendir * fuse_ops.readdirplus = fuse_readdirplus */ __pyx_v_7pyfuse3_fuse_ops.fsync = __pyx_f_7pyfuse3_fuse_fsync; /* "src/internal.pxi":59 * fuse_ops.release = fuse_release * fuse_ops.fsync = fuse_fsync * fuse_ops.opendir = fuse_opendir # <<<<<<<<<<<<<< * fuse_ops.readdirplus = fuse_readdirplus * fuse_ops.releasedir = fuse_releasedir */ __pyx_v_7pyfuse3_fuse_ops.opendir = __pyx_f_7pyfuse3_fuse_opendir; /* "src/internal.pxi":60 * fuse_ops.fsync = fuse_fsync * fuse_ops.opendir = fuse_opendir * fuse_ops.readdirplus = fuse_readdirplus # <<<<<<<<<<<<<< * fuse_ops.releasedir = fuse_releasedir * fuse_ops.fsyncdir = fuse_fsyncdir */ __pyx_v_7pyfuse3_fuse_ops.readdirplus = __pyx_f_7pyfuse3_fuse_readdirplus; /* "src/internal.pxi":61 * fuse_ops.opendir = fuse_opendir * fuse_ops.readdirplus = fuse_readdirplus * fuse_ops.releasedir = fuse_releasedir # <<<<<<<<<<<<<< * fuse_ops.fsyncdir = fuse_fsyncdir * fuse_ops.statfs = fuse_statfs */ __pyx_v_7pyfuse3_fuse_ops.releasedir = __pyx_f_7pyfuse3_fuse_releasedir; /* "src/internal.pxi":62 * fuse_ops.readdirplus = fuse_readdirplus * fuse_ops.releasedir = fuse_releasedir * fuse_ops.fsyncdir = fuse_fsyncdir # <<<<<<<<<<<<<< * fuse_ops.statfs = fuse_statfs * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) */ __pyx_v_7pyfuse3_fuse_ops.fsyncdir = __pyx_f_7pyfuse3_fuse_fsyncdir; /* "src/internal.pxi":63 * fuse_ops.releasedir = fuse_releasedir * fuse_ops.fsyncdir = fuse_fsyncdir * fuse_ops.statfs = fuse_statfs # <<<<<<<<<<<<<< * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) */ __pyx_v_7pyfuse3_fuse_ops.statfs = __pyx_f_7pyfuse3_fuse_statfs; /* "src/internal.pxi":64 * fuse_ops.fsyncdir = fuse_fsyncdir * fuse_ops.statfs = fuse_statfs * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) # <<<<<<<<<<<<<< * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) * fuse_ops.listxattr = fuse_listxattr */ ASSIGN_NOT_DARWIN(__pyx_v_7pyfuse3_fuse_ops.setxattr, (&__pyx_f_7pyfuse3_fuse_setxattr)); /* "src/internal.pxi":65 * fuse_ops.statfs = fuse_statfs * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) # <<<<<<<<<<<<<< * fuse_ops.listxattr = fuse_listxattr * fuse_ops.removexattr = fuse_removexattr */ ASSIGN_NOT_DARWIN(__pyx_v_7pyfuse3_fuse_ops.getxattr, (&__pyx_f_7pyfuse3_fuse_getxattr)); /* "src/internal.pxi":66 * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) * fuse_ops.listxattr = fuse_listxattr # <<<<<<<<<<<<<< * fuse_ops.removexattr = fuse_removexattr * fuse_ops.access = fuse_access */ __pyx_v_7pyfuse3_fuse_ops.listxattr = __pyx_f_7pyfuse3_fuse_listxattr; /* "src/internal.pxi":67 * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) * fuse_ops.listxattr = fuse_listxattr * fuse_ops.removexattr = fuse_removexattr # <<<<<<<<<<<<<< * fuse_ops.access = fuse_access * fuse_ops.create = fuse_create */ __pyx_v_7pyfuse3_fuse_ops.removexattr = __pyx_f_7pyfuse3_fuse_removexattr; /* "src/internal.pxi":68 * fuse_ops.listxattr = fuse_listxattr * fuse_ops.removexattr = fuse_removexattr * fuse_ops.access = fuse_access # <<<<<<<<<<<<<< * fuse_ops.create = fuse_create * fuse_ops.forget_multi = fuse_forget_multi */ __pyx_v_7pyfuse3_fuse_ops.access = __pyx_f_7pyfuse3_fuse_access; /* "src/internal.pxi":69 * fuse_ops.removexattr = fuse_removexattr * fuse_ops.access = fuse_access * fuse_ops.create = fuse_create # <<<<<<<<<<<<<< * fuse_ops.forget_multi = fuse_forget_multi * fuse_ops.write_buf = fuse_write_buf */ __pyx_v_7pyfuse3_fuse_ops.create = __pyx_f_7pyfuse3_fuse_create; /* "src/internal.pxi":70 * fuse_ops.access = fuse_access * fuse_ops.create = fuse_create * fuse_ops.forget_multi = fuse_forget_multi # <<<<<<<<<<<<<< * fuse_ops.write_buf = fuse_write_buf * */ __pyx_v_7pyfuse3_fuse_ops.forget_multi = __pyx_f_7pyfuse3_fuse_forget_multi; /* "src/internal.pxi":71 * fuse_ops.create = fuse_create * fuse_ops.forget_multi = fuse_forget_multi * fuse_ops.write_buf = fuse_write_buf # <<<<<<<<<<<<<< * * cdef make_fuse_args(args, fuse_args* f_args): */ __pyx_v_7pyfuse3_fuse_ops.write_buf = __pyx_f_7pyfuse3_fuse_write_buf; /* "src/internal.pxi":35 * return ctx * * cdef void init_fuse_ops(): # <<<<<<<<<<<<<< * '''Initialize fuse_lowlevel_ops structure''' * */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "src/internal.pxi":73 * fuse_ops.write_buf = fuse_write_buf * * cdef make_fuse_args(args, fuse_args* f_args): # <<<<<<<<<<<<<< * cdef char* arg * cdef int i */ static PyObject *__pyx_f_7pyfuse3_make_fuse_args(PyObject *__pyx_v_args, struct fuse_args *__pyx_v_f_args) { char *__pyx_v_arg; int __pyx_v_i; Py_ssize_t __pyx_v_size_s; size_t __pyx_v_size; PyObject *__pyx_v_args_new = NULL; PyObject *__pyx_v_el = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *(*__pyx_t_3)(PyObject *); PyObject *__pyx_t_4 = NULL; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; int __pyx_t_14; int __pyx_t_15; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("make_fuse_args", 0); __Pyx_INCREF(__pyx_v_args); /* "src/internal.pxi":79 * cdef size_t size * * args_new = [ b'pyfuse3' ] # <<<<<<<<<<<<<< * for el in args: * args_new.append(b'-o') */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_b_pyfuse3); __Pyx_GIVEREF(__pyx_n_b_pyfuse3); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_b_pyfuse3); __pyx_v_args_new = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":80 * * args_new = [ b'pyfuse3' ] * for el in args: # <<<<<<<<<<<<<< * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) */ if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 80, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(2, 80, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(2, 80, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 80, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_4); __pyx_t_4 = 0; /* "src/internal.pxi":81 * args_new = [ b'pyfuse3' ] * for el in args: * args_new.append(b'-o') # <<<<<<<<<<<<<< * args_new.append(el.encode('us-ascii')) * args = args_new */ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args_new, __pyx_kp_b_o); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 81, __pyx_L1_error) /* "src/internal.pxi":82 * for el in args: * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) # <<<<<<<<<<<<<< * args = args_new * */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_el, __pyx_n_s_encode); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_kp_u_us_ascii}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args_new, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 82, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "src/internal.pxi":80 * * args_new = [ b'pyfuse3' ] * for el in args: # <<<<<<<<<<<<<< * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":83 * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) * args = args_new # <<<<<<<<<<<<<< * * f_args.argc = len(args) */ __Pyx_INCREF(__pyx_v_args_new); __Pyx_DECREF_SET(__pyx_v_args, __pyx_v_args_new); /* "src/internal.pxi":85 * args = args_new * * f_args.argc = len(args) # <<<<<<<<<<<<<< * if f_args.argc == 0: * f_args.argv = NULL */ __pyx_t_2 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 85, __pyx_L1_error) __pyx_v_f_args->argc = ((int)__pyx_t_2); /* "src/internal.pxi":86 * * f_args.argc = len(args) * if f_args.argc == 0: # <<<<<<<<<<<<<< * f_args.argv = NULL * return */ __pyx_t_9 = (__pyx_v_f_args->argc == 0); if (__pyx_t_9) { /* "src/internal.pxi":87 * f_args.argc = len(args) * if f_args.argc == 0: * f_args.argv = NULL # <<<<<<<<<<<<<< * return * */ __pyx_v_f_args->argv = NULL; /* "src/internal.pxi":88 * if f_args.argc == 0: * f_args.argv = NULL * return # <<<<<<<<<<<<<< * * f_args.allocated = 1 */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "src/internal.pxi":86 * * f_args.argc = len(args) * if f_args.argc == 0: # <<<<<<<<<<<<<< * f_args.argv = NULL * return */ } /* "src/internal.pxi":90 * return * * f_args.allocated = 1 # <<<<<<<<<<<<<< * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) * */ __pyx_v_f_args->allocated = 1; /* "src/internal.pxi":91 * * f_args.allocated = 1 * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) # <<<<<<<<<<<<<< * * if f_args.argv is NULL: */ __pyx_v_f_args->argv = ((char **)calloc(((size_t)__pyx_v_f_args->argc), (sizeof(char *)))); /* "src/internal.pxi":93 * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) * * if f_args.argv is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_9 = (__pyx_v_f_args->argv == NULL); if (__pyx_t_9) { /* "src/internal.pxi":94 * * if f_args.argv is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * try: */ __pyx_t_10 = PyErr_NoMemory(); if (unlikely(__pyx_t_10 == ((PyObject *)NULL))) __PYX_ERR(2, 94, __pyx_L1_error) /* "src/internal.pxi":93 * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) * * if f_args.argv is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "src/internal.pxi":96 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { /* "src/internal.pxi":97 * * try: * for (i, el) in enumerate(args): # <<<<<<<<<<<<<< * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive */ __pyx_t_8 = 0; if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 97, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 97, __pyx_L8_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(2, 97, __pyx_L8_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 97, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(2, 97, __pyx_L8_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 97, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 97, __pyx_L8_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_4); __pyx_t_4 = 0; __pyx_v_i = __pyx_t_8; __pyx_t_8 = (__pyx_t_8 + 1); /* "src/internal.pxi":98 * try: * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) # <<<<<<<<<<<<<< * size = size_s # guaranteed positive * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) */ __pyx_t_14 = PyBytes_AsStringAndSize(__pyx_v_el, (&__pyx_v_arg), ((Py_ssize_t *)(&__pyx_v_size_s))); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(2, 98, __pyx_L8_error) /* "src/internal.pxi":99 * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive # <<<<<<<<<<<<<< * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) * */ __pyx_v_size = ((size_t)__pyx_v_size_s); /* "src/internal.pxi":100 * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) # <<<<<<<<<<<<<< * * if f_args.argv[i] is NULL: */ (__pyx_v_f_args->argv[__pyx_v_i]) = ((char *)malloc(((__pyx_v_size + 1) * (sizeof(char))))); /* "src/internal.pxi":102 * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) * * if f_args.argv[i] is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_9 = ((__pyx_v_f_args->argv[__pyx_v_i]) == NULL); if (__pyx_t_9) { /* "src/internal.pxi":103 * * if f_args.argv[i] is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * string.strncpy(f_args.argv[i], arg, size+1) */ __pyx_t_10 = PyErr_NoMemory(); if (unlikely(__pyx_t_10 == ((PyObject *)NULL))) __PYX_ERR(2, 103, __pyx_L8_error) /* "src/internal.pxi":102 * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) * * if f_args.argv[i] is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "src/internal.pxi":105 * cpython.exc.PyErr_NoMemory() * * string.strncpy(f_args.argv[i], arg, size+1) # <<<<<<<<<<<<<< * except: * for i in range(f_args.argc): */ (void)(strncpy((__pyx_v_f_args->argv[__pyx_v_i]), __pyx_v_arg, (__pyx_v_size + 1))); /* "src/internal.pxi":97 * * try: * for (i, el) in enumerate(args): # <<<<<<<<<<<<<< * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":96 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) */ } __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/internal.pxi":106 * * string.strncpy(f_args.argv[i], arg, size+1) * except: # <<<<<<<<<<<<<< * for i in range(f_args.argc): * # Freeing a NULL pointer (if this element has not been allocated */ /*except:*/ { __Pyx_AddTraceback("pyfuse3.make_fuse_args", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(2, 106, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); /* "src/internal.pxi":107 * string.strncpy(f_args.argv[i], arg, size+1) * except: * for i in range(f_args.argc): # <<<<<<<<<<<<<< * # Freeing a NULL pointer (if this element has not been allocated * # yet) is fine. */ __pyx_t_8 = __pyx_v_f_args->argc; __pyx_t_14 = __pyx_t_8; for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { __pyx_v_i = __pyx_t_15; /* "src/internal.pxi":110 * # Freeing a NULL pointer (if this element has not been allocated * # yet) is fine. * stdlib.free(f_args.argv[i]) # <<<<<<<<<<<<<< * stdlib.free(f_args.argv) * raise */ free((__pyx_v_f_args->argv[__pyx_v_i])); } /* "src/internal.pxi":111 * # yet) is fine. * stdlib.free(f_args.argv[i]) * stdlib.free(f_args.argv) # <<<<<<<<<<<<<< * raise * */ free(__pyx_v_f_args->argv); /* "src/internal.pxi":112 * stdlib.free(f_args.argv[i]) * stdlib.free(f_args.argv) * raise # <<<<<<<<<<<<<< * * def _notify_loop(): */ __Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_4, __pyx_t_6); __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; __PYX_ERR(2, 112, __pyx_L10_except_error) } /* "src/internal.pxi":96 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); goto __pyx_L1_error; __pyx_L13_try_end:; } /* "src/internal.pxi":73 * fuse_ops.write_buf = fuse_write_buf * * cdef make_fuse_args(args, fuse_args* f_args): # <<<<<<<<<<<<<< * cdef char* arg * cdef int i */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyfuse3.make_fuse_args", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_args_new); __Pyx_XDECREF(__pyx_v_el); __Pyx_XDECREF(__pyx_v_args); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":114 * raise * * def _notify_loop(): # <<<<<<<<<<<<<< * '''Process async invalidate_entry calls.''' * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_88_notify_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_87_notify_loop, "_notify_loop()\nProcess async invalidate_entry calls."); static PyMethodDef __pyx_mdef_7pyfuse3_88_notify_loop = {"_notify_loop", (PyCFunction)__pyx_pw_7pyfuse3_88_notify_loop, METH_NOARGS, __pyx_doc_7pyfuse3_87_notify_loop}; static PyObject *__pyx_pw_7pyfuse3_88_notify_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_notify_loop (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_87_notify_loop(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_87_notify_loop(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_v_req = NULL; PyObject *__pyx_v_inode_p = NULL; PyObject *__pyx_v_name = NULL; PyObject *__pyx_v_deleted = NULL; PyObject *__pyx_v_ignore_enoent = NULL; PyObject *__pyx_v_exc = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; int __pyx_t_16; char const *__pyx_t_17; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; PyObject *__pyx_t_22 = NULL; PyObject *__pyx_t_23 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_notify_loop", 0); /* "src/internal.pxi":117 * '''Process async invalidate_entry calls.''' * * while True: # <<<<<<<<<<<<<< * req = _notify_queue.get() * if req is None: */ while (1) { /* "src/internal.pxi":118 * * while True: * req = _notify_queue.get() # <<<<<<<<<<<<<< * if req is None: * log.debug('terminating notify thread') */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3__notify_queue, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_XDECREF_SET(__pyx_v_req, __pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":119 * while True: * req = _notify_queue.get() * if req is None: # <<<<<<<<<<<<<< * log.debug('terminating notify thread') * break */ __pyx_t_5 = (__pyx_v_req == Py_None); if (__pyx_t_5) { /* "src/internal.pxi":120 * req = _notify_queue.get() * if req is None: * log.debug('terminating notify thread') # <<<<<<<<<<<<<< * break * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u_terminating_notify_thread}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":121 * if req is None: * log.debug('terminating notify thread') * break # <<<<<<<<<<<<<< * * (inode_p, name, deleted, ignore_enoent) = req */ goto __pyx_L4_break; /* "src/internal.pxi":119 * while True: * req = _notify_queue.get() * if req is None: # <<<<<<<<<<<<<< * log.debug('terminating notify thread') * break */ } /* "src/internal.pxi":123 * break * * (inode_p, name, deleted, ignore_enoent) = req # <<<<<<<<<<<<<< * try: * invalidate_entry(inode_p, name, deleted) */ if ((likely(PyTuple_CheckExact(__pyx_v_req))) || (PyList_CheckExact(__pyx_v_req))) { PyObject* sequence = __pyx_v_req; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 123, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_6 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_3,&__pyx_t_2,&__pyx_t_6}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(2, 123, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_3,&__pyx_t_2,&__pyx_t_6}; __pyx_t_7 = PyObject_GetIter(__pyx_v_req); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); for (index=0; index < 4; index++) { PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 4) < 0) __PYX_ERR(2, 123, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(2, 123, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_inode_p, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_deleted, __pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_ignore_enoent, __pyx_t_6); __pyx_t_6 = 0; /* "src/internal.pxi":124 * * (inode_p, name, deleted, ignore_enoent) = req * try: # <<<<<<<<<<<<<< * invalidate_entry(inode_p, name, deleted) * except Exception as exc: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { /* "src/internal.pxi":125 * (inode_p, name, deleted, ignore_enoent) = req * try: * invalidate_entry(inode_p, name, deleted) # <<<<<<<<<<<<<< * except Exception as exc: * if ignore_enoent and isinstance(exc, FileNotFoundError): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_invalidate_entry); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 125, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_v_inode_p, __pyx_v_name, __pyx_v_deleted}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 125, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/internal.pxi":124 * * (inode_p, name, deleted, ignore_enoent) = req * try: # <<<<<<<<<<<<<< * invalidate_entry(inode_p, name, deleted) * except Exception as exc: */ } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L15_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/internal.pxi":126 * try: * invalidate_entry(inode_p, name, deleted) * except Exception as exc: # <<<<<<<<<<<<<< * if ignore_enoent and isinstance(exc, FileNotFoundError): * pass */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("pyfuse3._notify_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(2, 126, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_v_exc = __pyx_t_2; /*try:*/ { /* "src/internal.pxi":127 * invalidate_entry(inode_p, name, deleted) * except Exception as exc: * if ignore_enoent and isinstance(exc, FileNotFoundError): # <<<<<<<<<<<<<< * pass * else: */ __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_enoent); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 127, __pyx_L21_error) if (__pyx_t_12) { } else { __pyx_t_5 = __pyx_t_12; goto __pyx_L24_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_FileNotFoundError); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 127, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = PyObject_IsInstance(__pyx_v_exc, __pyx_t_1); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(2, 127, __pyx_L21_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __pyx_t_12; __pyx_L24_bool_binop_done:; if (__pyx_t_5) { goto __pyx_L23; } /* "src/internal.pxi":130 * pass * else: * log.exception('Failed to submit invalidate_entry request for ' # <<<<<<<<<<<<<< * 'parent inode %d, name %s', req[0], req[1]) * */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 130, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_exception); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 130, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/internal.pxi":131 * else: * log.exception('Failed to submit invalidate_entry request for ' * 'parent inode %d, name %s', req[0], req[1]) # <<<<<<<<<<<<<< * * cdef str2bytes(s): */ __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_req, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 131, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_req, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(2, 131, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_15, __pyx_kp_u_Failed_to_submit_invalidate_entr, __pyx_t_7, __pyx_t_14}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 130, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L23:; } /* "src/internal.pxi":126 * try: * invalidate_entry(inode_p, name, deleted) * except Exception as exc: # <<<<<<<<<<<<<< * if ignore_enoent and isinstance(exc, FileNotFoundError): * pass */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L22; } __pyx_L21_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_4 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L10_except_error; } __pyx_L22:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; /* "src/internal.pxi":124 * * (inode_p, name, deleted, ignore_enoent) = req * try: # <<<<<<<<<<<<<< * invalidate_entry(inode_p, name, deleted) * except Exception as exc: */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); __pyx_L15_try_end:; } } __pyx_L4_break:; /* "src/internal.pxi":114 * raise * * def _notify_loop(): # <<<<<<<<<<<<<< * '''Process async invalidate_entry calls.''' * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("pyfuse3._notify_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_req); __Pyx_XDECREF(__pyx_v_inode_p); __Pyx_XDECREF(__pyx_v_name); __Pyx_XDECREF(__pyx_v_deleted); __Pyx_XDECREF(__pyx_v_ignore_enoent); __Pyx_XDECREF(__pyx_v_exc); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":133 * 'parent inode %d, name %s', req[0], req[1]) * * cdef str2bytes(s): # <<<<<<<<<<<<<< * '''Convert *s* to bytes''' * */ static PyObject *__pyx_f_7pyfuse3_str2bytes(PyObject *__pyx_v_s) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("str2bytes", 0); /* "src/internal.pxi":136 * '''Convert *s* to bytes''' * * return s.encode(fse, 'surrogateescape') # <<<<<<<<<<<<<< * * cdef bytes2str(s): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fse); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_3, __pyx_n_u_surrogateescape}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "src/internal.pxi":133 * 'parent inode %d, name %s', req[0], req[1]) * * cdef str2bytes(s): # <<<<<<<<<<<<<< * '''Convert *s* to bytes''' * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":138 * return s.encode(fse, 'surrogateescape') * * cdef bytes2str(s): # <<<<<<<<<<<<<< * '''Convert *s* to str''' * */ static PyObject *__pyx_f_7pyfuse3_bytes2str(PyObject *__pyx_v_s) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("bytes2str", 0); /* "src/internal.pxi":141 * '''Convert *s* to str''' * * return s.decode(fse, 'surrogateescape') # <<<<<<<<<<<<<< * * cdef strerror(int errno): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_decode); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fse); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_3, __pyx_n_u_surrogateescape}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "src/internal.pxi":138 * return s.encode(fse, 'surrogateescape') * * cdef bytes2str(s): # <<<<<<<<<<<<<< * '''Convert *s* to str''' * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":143 * return s.decode(fse, 'surrogateescape') * * cdef strerror(int errno): # <<<<<<<<<<<<<< * try: * return os.strerror(errno) */ static PyObject *__pyx_f_7pyfuse3_strerror(int __pyx_v_errno) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("strerror", 0); /* "src/internal.pxi":144 * * cdef strerror(int errno): * try: # <<<<<<<<<<<<<< * return os.strerror(errno) * except ValueError: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/internal.pxi":145 * cdef strerror(int errno): * try: * return os.strerror(errno) # <<<<<<<<<<<<<< * except ValueError: * return 'errno: %d' % errno */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_os); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 145, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_strerror); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 145, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 145, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 145, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return; /* "src/internal.pxi":144 * * cdef strerror(int errno): * try: # <<<<<<<<<<<<<< * return os.strerror(errno) * except ValueError: */ } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/internal.pxi":146 * try: * return os.strerror(errno) * except ValueError: # <<<<<<<<<<<<<< * return 'errno: %d' % errno * */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.strerror", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(2, 146, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); /* "src/internal.pxi":147 * return os.strerror(errno) * except ValueError: * return 'errno: %d' % errno # <<<<<<<<<<<<<< * * cdef PyBytes_from_bufvec(fuse_bufvec *src): */ __Pyx_XDECREF(__pyx_r); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 147, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = PyUnicode_Format(__pyx_kp_u_errno_d, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 147, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_9; __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L6_except_return; } goto __pyx_L5_except_error; /* "src/internal.pxi":144 * * cdef strerror(int errno): * try: # <<<<<<<<<<<<<< * return os.strerror(errno) * except ValueError: */ __pyx_L5_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L7_try_return:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L0; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L0; } /* "src/internal.pxi":143 * return s.decode(fse, 'surrogateescape') * * cdef strerror(int errno): # <<<<<<<<<<<<<< * try: * return os.strerror(errno) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("pyfuse3.strerror", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":149 * return 'errno: %d' % errno * * cdef PyBytes_from_bufvec(fuse_bufvec *src): # <<<<<<<<<<<<<< * cdef fuse_bufvec dst * cdef size_t len_ */ static PyObject *__pyx_f_7pyfuse3_PyBytes_from_bufvec(struct fuse_bufvec *__pyx_v_src) { struct fuse_bufvec __pyx_v_dst; size_t __pyx_v_len_; Py_ssize_t __pyx_v_res; PyObject *__pyx_v_buf = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyBytes_from_bufvec", 0); /* "src/internal.pxi":154 * cdef ssize_t res * * len_ = fuse_buf_size(src) - src.off # <<<<<<<<<<<<<< * if len_ > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') */ __pyx_v_len_ = (fuse_buf_size(__pyx_v_src) - __pyx_v_src->off); /* "src/internal.pxi":155 * * len_ = fuse_buf_size(src) - src.off * if len_ > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) */ __pyx_t_1 = (__pyx_v_len_ > PY_SSIZE_T_MAX); if (unlikely(__pyx_t_1)) { /* "src/internal.pxi":156 * len_ = fuse_buf_size(src) - src.off * if len_ > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') # <<<<<<<<<<<<<< * buf = PyBytes_FromStringAndSize(NULL, len_) * dst.count = 1 */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_OverflowError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 156, __pyx_L1_error) /* "src/internal.pxi":155 * * len_ = fuse_buf_size(src) - src.off * if len_ > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) */ } /* "src/internal.pxi":157 * if len_ > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) # <<<<<<<<<<<<<< * dst.count = 1 * dst.idx = 0 */ __pyx_t_2 = PyBytes_FromStringAndSize(NULL, ((Py_ssize_t)__pyx_v_len_)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_buf = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "src/internal.pxi":158 * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) * dst.count = 1 # <<<<<<<<<<<<<< * dst.idx = 0 * dst.off = 0 */ __pyx_v_dst.count = 1; /* "src/internal.pxi":159 * buf = PyBytes_FromStringAndSize(NULL, len_) * dst.count = 1 * dst.idx = 0 # <<<<<<<<<<<<<< * dst.off = 0 * dst.buf[0].mem = PyBytes_AS_STRING(buf) */ __pyx_v_dst.idx = 0; /* "src/internal.pxi":160 * dst.count = 1 * dst.idx = 0 * dst.off = 0 # <<<<<<<<<<<<<< * dst.buf[0].mem = PyBytes_AS_STRING(buf) * dst.buf[0].size = len_ */ __pyx_v_dst.off = 0; /* "src/internal.pxi":161 * dst.idx = 0 * dst.off = 0 * dst.buf[0].mem = PyBytes_AS_STRING(buf) # <<<<<<<<<<<<<< * dst.buf[0].size = len_ * dst.buf[0].flags = 0 */ (__pyx_v_dst.buf[0]).mem = PyBytes_AS_STRING(__pyx_v_buf); /* "src/internal.pxi":162 * dst.off = 0 * dst.buf[0].mem = PyBytes_AS_STRING(buf) * dst.buf[0].size = len_ # <<<<<<<<<<<<<< * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) */ (__pyx_v_dst.buf[0]).size = __pyx_v_len_; /* "src/internal.pxi":163 * dst.buf[0].mem = PyBytes_AS_STRING(buf) * dst.buf[0].size = len_ * dst.buf[0].flags = 0 # <<<<<<<<<<<<<< * res = fuse_buf_copy(&dst, src, 0) * if res < 0: */ (__pyx_v_dst.buf[0]).flags = 0; /* "src/internal.pxi":164 * dst.buf[0].size = len_ * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) # <<<<<<<<<<<<<< * if res < 0: * raise OSError(errno.errno, 'fuse_buf_copy failed with ' */ __pyx_v_res = fuse_buf_copy((&__pyx_v_dst), __pyx_v_src, 0); /* "src/internal.pxi":165 * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) * if res < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) */ __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { /* "src/internal.pxi":166 * res = fuse_buf_copy(&dst, src, 0) * if res < 0: * raise OSError(errno.errno, 'fuse_buf_copy failed with ' # <<<<<<<<<<<<<< * + strerror(errno.errno)) * elif res < len_: */ __pyx_t_2 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "src/internal.pxi":167 * if res < 0: * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) # <<<<<<<<<<<<<< * elif res < len_: * # This is expected to be rare */ __pyx_t_3 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Add(__pyx_kp_u_fuse_buf_copy_failed_with, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/internal.pxi":166 * res = fuse_buf_copy(&dst, src, 0) * if res < 0: * raise OSError(errno.errno, 'fuse_buf_copy failed with ' # <<<<<<<<<<<<<< * + strerror(errno.errno)) * elif res < len_: */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 166, __pyx_L1_error) /* "src/internal.pxi":165 * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) * if res < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) */ } /* "src/internal.pxi":168 * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) * elif res < len_: # <<<<<<<<<<<<<< * # This is expected to be rare * return buf[:res] */ __pyx_t_1 = (((size_t)__pyx_v_res) < __pyx_v_len_); if (__pyx_t_1) { /* "src/internal.pxi":170 * elif res < len_: * # This is expected to be rare * return buf[:res] # <<<<<<<<<<<<<< * else: * return buf */ __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_buf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 170, __pyx_L1_error) } __pyx_t_4 = PySequence_GetSlice(__pyx_v_buf, 0, __pyx_v_res); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* "src/internal.pxi":168 * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) * elif res < len_: # <<<<<<<<<<<<<< * # This is expected to be rare * return buf[:res] */ } /* "src/internal.pxi":172 * return buf[:res] * else: * return buf # <<<<<<<<<<<<<< * * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_buf); __pyx_r = __pyx_v_buf; goto __pyx_L0; } /* "src/internal.pxi":149 * return 'errno: %d' % errno * * cdef PyBytes_from_bufvec(fuse_bufvec *src): # <<<<<<<<<<<<<< * cdef fuse_bufvec dst * cdef size_t len_ */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.PyBytes_from_bufvec", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_buf); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":174 * return buf * * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: # <<<<<<<<<<<<<< * cdef void* mem * mem = stdlib.calloc(nmemb, size) */ static void *__pyx_f_7pyfuse3_calloc_or_raise(size_t __pyx_v_nmemb, size_t __pyx_v_size) { void *__pyx_v_mem; void *__pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("calloc_or_raise", 0); /* "src/internal.pxi":176 * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: * cdef void* mem * mem = stdlib.calloc(nmemb, size) # <<<<<<<<<<<<<< * if mem is NULL: * raise MemoryError() */ __pyx_v_mem = calloc(__pyx_v_nmemb, __pyx_v_size); /* "src/internal.pxi":177 * cdef void* mem * mem = stdlib.calloc(nmemb, size) * if mem is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * return mem */ __pyx_t_1 = (__pyx_v_mem == NULL); if (unlikely(__pyx_t_1)) { /* "src/internal.pxi":178 * mem = stdlib.calloc(nmemb, size) * if mem is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * return mem * */ PyErr_NoMemory(); __PYX_ERR(2, 178, __pyx_L1_error) /* "src/internal.pxi":177 * cdef void* mem * mem = stdlib.calloc(nmemb, size) * if mem is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * return mem */ } /* "src/internal.pxi":179 * if mem is NULL: * raise MemoryError() * return mem # <<<<<<<<<<<<<< * * cdef class _WorkerData: */ __pyx_r = __pyx_v_mem; goto __pyx_L0; /* "src/internal.pxi":174 * return buf * * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: # <<<<<<<<<<<<<< * cdef void* mem * mem = stdlib.calloc(nmemb, size) */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.calloc_or_raise", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":189 * cdef int active_readers * * def __init__(self): # <<<<<<<<<<<<<< * self.read_lock = trio.Lock() * self.active_readers = 0 */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11_WorkerData_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_11_WorkerData_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __pyx_r = __pyx_pf_7pyfuse3_11_WorkerData___init__(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11_WorkerData___init__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "src/internal.pxi":190 * * def __init__(self): * self.read_lock = trio.Lock() # <<<<<<<<<<<<<< * self.active_readers = 0 * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_trio); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Lock); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->read_lock); __Pyx_DECREF(__pyx_v_self->read_lock); __pyx_v_self->read_lock = __pyx_t_1; __pyx_t_1 = 0; /* "src/internal.pxi":191 * def __init__(self): * self.read_lock = trio.Lock() * self.active_readers = 0 # <<<<<<<<<<<<<< * * cdef get_name(self): */ __pyx_v_self->active_readers = 0; /* "src/internal.pxi":189 * cdef int active_readers * * def __init__(self): # <<<<<<<<<<<<<< * self.read_lock = trio.Lock() * self.active_readers = 0 */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3._WorkerData.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/internal.pxi":193 * self.active_readers = 0 * * cdef get_name(self): # <<<<<<<<<<<<<< * self.task_serial += 1 * return 'pyfuse-%02d' % self.task_serial */ static PyObject *__pyx_f_7pyfuse3_11_WorkerData_get_name(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_name", 0); /* "src/internal.pxi":194 * * cdef get_name(self): * self.task_serial += 1 # <<<<<<<<<<<<<< * return 'pyfuse-%02d' % self.task_serial * */ __pyx_v_self->task_serial = (__pyx_v_self->task_serial + 1); /* "src/internal.pxi":195 * cdef get_name(self): * self.task_serial += 1 * return 'pyfuse-%02d' % self.task_serial # <<<<<<<<<<<<<< * * # Delay initialization so that pyfuse3_asyncio can replace */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->task_serial); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_pyfuse_02d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "src/internal.pxi":193 * self.active_readers = 0 * * cdef get_name(self): # <<<<<<<<<<<<<< * self.task_serial += 1 * return 'pyfuse-%02d' % self.task_serial */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3._WorkerData.get_name", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_11_WorkerData_2__reduce_cython__, "_WorkerData.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_11_WorkerData_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11_WorkerData_2__reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_11_WorkerData_2__reduce_cython__(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_2__reduce_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None: */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->active_readers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->task_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->task_serial); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_self->read_lock); __Pyx_GIVEREF(__pyx_v_self->read_lock); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_self->read_lock); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_v_state = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None: * state += (_dict,) */ __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v__dict = __pyx_t_4; __pyx_t_4 = 0; /* "(tree fragment)":7 * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_5 = (__pyx_v__dict != Py_None); if (__pyx_t_5) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict); __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "(tree fragment)":9 * if _dict is not None: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = self.read_lock is not None */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = self.read_lock is not None # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state */ /*else*/ { __pyx_t_5 = (__pyx_v_self->read_lock != Py_None); __pyx_v_use_setstate = __pyx_t_5; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = self.read_lock is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state * else: */ if (__pyx_v_use_setstate) { /* "(tree fragment)":13 * use_setstate = self.read_lock is not None * if use_setstate: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle__WorkerData); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_44617694); __Pyx_GIVEREF(__pyx_int_44617694); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_44617694); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = self.read_lock is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle__WorkerData); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_44617694); __Pyx_GIVEREF(__pyx_int_44617694); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_44617694); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3._WorkerData.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_11_WorkerData_4__setstate_cython__, "_WorkerData.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_11_WorkerData_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11_WorkerData_4__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 16, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 16, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3._WorkerData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_11_WorkerData_4__setstate_cython__(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_4__setstate_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(0, 17, __pyx_L1_error) __pyx_t_1 = __pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3._WorkerData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_91generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/internal.pxi":201 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_90_wait_fuse_readable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_89_wait_fuse_readable, "_wait_fuse_readable()\nWait for FUSE fd to become readable\n\n Return True if the fd is readable, or False if the main loop\n should terminate.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_90_wait_fuse_readable = {"_wait_fuse_readable", (PyCFunction)__pyx_pw_7pyfuse3_90_wait_fuse_readable, METH_NOARGS, __pyx_doc_7pyfuse3_89_wait_fuse_readable}; static PyObject *__pyx_pw_7pyfuse3_90_wait_fuse_readable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_wait_fuse_readable (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_89_wait_fuse_readable(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_89_wait_fuse_readable(CYTHON_UNUSED PyObject *__pyx_self) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_wait_fuse_readable", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable(__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(2, 201, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_91generator29, __pyx_codeobj__33, (PyObject *) __pyx_cur_scope, __pyx_n_s_wait_fuse_readable, __pyx_n_s_wait_fuse_readable, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(2, 201, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_91generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; int __pyx_t_15; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; int __pyx_t_22; char const *__pyx_t_23; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_wait_fuse_readable", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L14_resume_from_await; case 2: goto __pyx_L25_resume_from_await; case 3: goto __pyx_L29_resume_from_await; case 4: goto __pyx_L30_resume_from_await; case 5: goto __pyx_L31_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 201, __pyx_L1_error) /* "src/internal.pxi":209 * * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 # <<<<<<<<<<<<<< * try: * #log.debug('%s: Waiting for read lock...', name) */ __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers + 1); /* "src/internal.pxi":210 * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 * try: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: */ /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/internal.pxi":212 * try: * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): */ /*with:*/ { __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_7pyfuse3_worker_data->read_lock, __pyx_n_s_aexit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 212, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_v_7pyfuse3_worker_data->read_lock, __pyx_n_s_aenter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 212, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 212, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_3 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L14_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 212, __pyx_L13_error) __pyx_t_5 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_5); } else { __pyx_t_5 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_5) < 0) __PYX_ERR(2, 212, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { /* "src/internal.pxi":214 * async with worker_data.read_lock: * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): # <<<<<<<<<<<<<< * log.debug('FUSE session exit flag set while waiting for FUSE fd ' * 'to become readable.') */ __pyx_t_12 = fuse_session_exited(__pyx_v_7pyfuse3_session); if (__pyx_t_12) { /* "src/internal.pxi":215 * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): * log.debug('FUSE session exit flag set while waiting for FUSE fd ' # <<<<<<<<<<<<<< * 'to become readable.') * return False */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 215, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_debug); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 215, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_u_FUSE_session_exit_flag_set_while}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 215, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/internal.pxi":217 * log.debug('FUSE session exit flag set while waiting for FUSE fd ' * 'to become readable.') * return False # <<<<<<<<<<<<<< * await trio.lowlevel.wait_readable(session_fd) * #log.debug('%s: fuse fd readable, unparking next task.', name) */ __Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(Py_False); goto __pyx_L22_try_return; /* "src/internal.pxi":214 * async with worker_data.read_lock: * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): # <<<<<<<<<<<<<< * log.debug('FUSE session exit flag set while waiting for FUSE fd ' * 'to become readable.') */ } /* "src/internal.pxi":218 * 'to become readable.') * return False * await trio.lowlevel.wait_readable(session_fd) # <<<<<<<<<<<<<< * #log.debug('%s: fuse fd readable, unparking next task.', name) * except trio.ClosedResourceError: */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_trio); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 218, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_lowlevel); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 218, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_wait_readable); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 218, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_7pyfuse3_session_fd); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 218, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_6}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 218, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_3 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_4 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_5 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_6 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L25_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_9 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 218, __pyx_L18_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(2, 218, __pyx_L18_error) } } /* "src/internal.pxi":212 * try: * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): */ } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L23_try_end; __pyx_L18_error:; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /*except:*/ { __Pyx_AddTraceback("pyfuse3._wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(2, 212, __pyx_L20_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __pyx_t_13 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 212, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(2, 212, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_14); __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_14); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_3 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_4 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_5 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_6 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_7 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_8 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_9 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_10 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_SwapException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L29_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_9 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_9; __pyx_cur_scope->__pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_14 = __pyx_cur_scope->__pyx_t_10; __pyx_cur_scope->__pyx_t_10 = 0; __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 212, __pyx_L20_except_error) __pyx_t_13 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_13); } else { __pyx_t_13 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_13) < 0) __PYX_ERR(2, 212, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_13); } __pyx_t_14 = __pyx_t_13; __pyx_t_13 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_14); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_12 < 0) __PYX_ERR(2, 212, __pyx_L20_except_error) __pyx_t_15 = (!__pyx_t_12); if (unlikely(__pyx_t_15)) { __Pyx_GIVEREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_7, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __PYX_ERR(2, 212, __pyx_L20_except_error) } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L19_exception_handled; } __pyx_L20_except_error:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L7_error; __pyx_L22_try_return:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L15_return; __pyx_L19_exception_handled:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); __pyx_L23_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_4) { __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__34, NULL); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 212, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_3 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_4 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 4; return __pyx_r; __pyx_L30_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_11 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 212, __pyx_L7_error) __pyx_t_6 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_6); } else { __pyx_t_6 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_6) < 0) __PYX_ERR(2, 212, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); } __pyx_t_11 = __pyx_t_6; __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } goto __pyx_L17; } __pyx_L15_return: { __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_16, &__pyx_t_17); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __pyx_t_18 = __pyx_r; __pyx_r = 0; if (__pyx_t_4) { __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__34, NULL); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 212, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_19); __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_19); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_3 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_4 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_5 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_6 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_7 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_t_16); __pyx_cur_scope->__pyx_t_8 = __pyx_t_16; __Pyx_XGIVEREF(__pyx_t_17); __pyx_cur_scope->__pyx_t_9 = __pyx_t_17; __Pyx_XGIVEREF(__pyx_t_18); __pyx_cur_scope->__pyx_t_10 = __pyx_t_18; __Pyx_XGIVEREF(__pyx_t_19); __pyx_cur_scope->__pyx_t_11 = __pyx_t_19; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 5; return __pyx_r; __pyx_L31_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_9 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_14 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_14); __pyx_t_16 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_16); __pyx_t_17 = __pyx_cur_scope->__pyx_t_9; __pyx_cur_scope->__pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_t_17); __pyx_t_18 = __pyx_cur_scope->__pyx_t_10; __pyx_cur_scope->__pyx_t_10 = 0; __Pyx_XGOTREF(__pyx_t_18); __pyx_t_19 = __pyx_cur_scope->__pyx_t_11; __pyx_cur_scope->__pyx_t_11 = 0; __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 212, __pyx_L7_error) __pyx_t_6 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_6); } else { __pyx_t_6 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_6) < 0) __PYX_ERR(2, 212, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); } __pyx_t_19 = __pyx_t_6; __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __pyx_r = __pyx_t_18; __pyx_t_18 = 0; if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_16, __pyx_t_17); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_10, __pyx_t_9); __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; goto __pyx_L11_try_return; } __pyx_L17:; } goto __pyx_L32; __pyx_L13_error:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L7_error; __pyx_L32:; } /* "src/internal.pxi":210 * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 * try: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L12_try_end; __pyx_L7_error:; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/internal.pxi":220 * await trio.lowlevel.wait_readable(session_fd) * #log.debug('%s: fuse fd readable, unparking next task.', name) * except trio.ClosedResourceError: # <<<<<<<<<<<<<< * log.debug('FUSE fd about to be closed.') * return False */ __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_trio); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 220, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_ClosedResourceError); if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 220, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_6, __pyx_t_20); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_5 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3._wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(2, 220, __pyx_L9_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); /* "src/internal.pxi":221 * #log.debug('%s: fuse fd readable, unparking next task.', name) * except trio.ClosedResourceError: * log.debug('FUSE fd about to be closed.') # <<<<<<<<<<<<<< * return False * */ __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_log); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 221, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_debug); if (unlikely(!__pyx_t_21)) __PYX_ERR(2, 221, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_kp_u_FUSE_fd_about_to_be_closed}; __pyx_t_20 = __Pyx_PyObject_FastCall(__pyx_t_21, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 221, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; /* "src/internal.pxi":222 * except trio.ClosedResourceError: * log.debug('FUSE fd about to be closed.') * return False # <<<<<<<<<<<<<< * * finally: */ __Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(Py_False); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L10_except_return; } goto __pyx_L9_except_error; /* "src/internal.pxi":210 * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 * try: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: */ __pyx_L9_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L5_error; __pyx_L11_try_return:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L4_return; __pyx_L10_except_return:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L4_return; __pyx_L12_try_end:; } } /* "src/internal.pxi":225 * * finally: * worker_data.active_readers -= 1 # <<<<<<<<<<<<<< * * return True */ /*finally:*/ { /*normal exit:*/{ __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers - 1); goto __pyx_L6; } __pyx_L5_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_4, &__pyx_t_17, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0)) __Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_22 = __pyx_clineno; __pyx_t_23 = __pyx_filename; { __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers - 1); } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_17, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_1); __Pyx_ErrRestore(__pyx_t_3, __pyx_t_2, __pyx_t_1); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_22; __pyx_filename = __pyx_t_23; goto __pyx_L1_error; } __pyx_L4_return: { __Pyx_PyThreadState_assign __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_4) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __pyx_t_14 = __pyx_r; __pyx_r = 0; __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers - 1); __pyx_r = __pyx_t_14; __pyx_t_14 = 0; if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_4); __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; goto __pyx_L0; } __pyx_L6:; } /* "src/internal.pxi":227 * worker_data.active_readers -= 1 * * return True # <<<<<<<<<<<<<< * * @async_wrapper */ __Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(Py_True); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/internal.pxi":201 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ /* function exit code */ __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_20); __Pyx_XDECREF(__pyx_t_21); __Pyx_AddTraceback("_wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_94generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/internal.pxi":229 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_93_session_loop(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_92_session_loop, "_session_loop(nursery, int min_tasks, int max_tasks)"); static PyMethodDef __pyx_mdef_7pyfuse3_93_session_loop = {"_session_loop", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_93_session_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_92_session_loop}; static PyObject *__pyx_pw_7pyfuse3_93_session_loop(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_nursery = 0; int __pyx_v_min_tasks; int __pyx_v_max_tasks; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_session_loop (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nursery,&__pyx_n_s_min_tasks,&__pyx_n_s_max_tasks,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nursery)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 229, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_min_tasks)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 229, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("_session_loop", 1, 3, 3, 1); __PYX_ERR(2, 229, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_max_tasks)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 229, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("_session_loop", 1, 3, 3, 2); __PYX_ERR(2, 229, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_session_loop") < 0)) __PYX_ERR(2, 229, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v_nursery = values[0]; __pyx_v_min_tasks = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_min_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 230, __pyx_L3_error) __pyx_v_max_tasks = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_max_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 230, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_session_loop", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 229, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3._session_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_92_session_loop(__pyx_self, __pyx_v_nursery, __pyx_v_min_tasks, __pyx_v_max_tasks); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_92_session_loop(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_nursery, int __pyx_v_min_tasks, int __pyx_v_max_tasks) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_session_loop", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__session_loop(__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(2, 229, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_nursery = __pyx_v_nursery; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_nursery); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nursery); __pyx_cur_scope->__pyx_v_min_tasks = __pyx_v_min_tasks; __pyx_cur_scope->__pyx_v_max_tasks = __pyx_v_max_tasks; { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_94generator30, __pyx_codeobj__35, (PyObject *) __pyx_cur_scope, __pyx_n_s_session_loop, __pyx_n_s_session_loop, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(2, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._session_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_94generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_session_loop", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L8_resume_from_await; case 2: goto __pyx_L14_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 229, __pyx_L1_error) /* "src/internal.pxi":234 * cdef fuse_buf buf * * name = trio.lowlevel.current_task().name # <<<<<<<<<<<<<< * * buf.mem = NULL */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_trio); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lowlevel); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_current_task); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_name = __pyx_t_2; __pyx_t_2 = 0; /* "src/internal.pxi":236 * name = trio.lowlevel.current_task().name * * buf.mem = NULL # <<<<<<<<<<<<<< * buf.size = 0 * buf.pos = 0 */ __pyx_cur_scope->__pyx_v_buf.mem = NULL; /* "src/internal.pxi":237 * * buf.mem = NULL * buf.size = 0 # <<<<<<<<<<<<<< * buf.pos = 0 * buf.flags = 0 */ __pyx_cur_scope->__pyx_v_buf.size = 0; /* "src/internal.pxi":238 * buf.mem = NULL * buf.size = 0 * buf.pos = 0 # <<<<<<<<<<<<<< * buf.flags = 0 * while not fuse_session_exited(session): */ __pyx_cur_scope->__pyx_v_buf.pos = 0; /* "src/internal.pxi":239 * buf.size = 0 * buf.pos = 0 * buf.flags = 0 # <<<<<<<<<<<<<< * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: */ __pyx_cur_scope->__pyx_v_buf.flags = 0; /* "src/internal.pxi":240 * buf.pos = 0 * buf.flags = 0 * while not fuse_session_exited(session): # <<<<<<<<<<<<<< * if worker_data.active_readers > min_tasks: * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', */ while (1) { __pyx_t_5 = (!fuse_session_exited(__pyx_v_7pyfuse3_session)); if (!__pyx_t_5) break; /* "src/internal.pxi":241 * buf.flags = 0 * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: # <<<<<<<<<<<<<< * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) */ __pyx_t_5 = (__pyx_v_7pyfuse3_worker_data->active_readers > __pyx_cur_scope->__pyx_v_min_tasks); if (__pyx_t_5) { /* "src/internal.pxi":242 * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', # <<<<<<<<<<<<<< * name, worker_data.task_count, worker_data.active_readers) * break */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":243 * if worker_data.active_readers > min_tasks: * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) # <<<<<<<<<<<<<< * break * */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_7pyfuse3_worker_data->task_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_7pyfuse3_worker_data->active_readers); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[5] = {__pyx_t_7, __pyx_kp_u_s_too_many_idle_tasks_d_total_d, __pyx_cur_scope->__pyx_v_name, __pyx_t_1, __pyx_t_6}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 4+__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/internal.pxi":244 * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) * break # <<<<<<<<<<<<<< * * if not await _wait_fuse_readable(): */ goto __pyx_L5_break; /* "src/internal.pxi":241 * buf.flags = 0 * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: # <<<<<<<<<<<<<< * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) */ } /* "src/internal.pxi":246 * break * * if not await _wait_fuse_readable(): # <<<<<<<<<<<<<< * break * */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_wait_fuse_readable); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L8_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 246, __pyx_L1_error) __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2); } else { __pyx_t_2 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(2, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 246, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = (!__pyx_t_5); if (__pyx_t_8) { /* "src/internal.pxi":247 * * if not await _wait_fuse_readable(): * break # <<<<<<<<<<<<<< * * res = fuse_session_receive_buf(session, &buf) */ goto __pyx_L5_break; /* "src/internal.pxi":246 * break * * if not await _wait_fuse_readable(): # <<<<<<<<<<<<<< * break * */ } /* "src/internal.pxi":249 * break * * res = fuse_session_receive_buf(session, &buf) # <<<<<<<<<<<<<< * if not worker_data.active_readers and worker_data.task_count < max_tasks: * worker_data.task_count += 1 */ __pyx_cur_scope->__pyx_v_res = fuse_session_receive_buf(__pyx_v_7pyfuse3_session, (&__pyx_cur_scope->__pyx_v_buf)); /* "src/internal.pxi":250 * * res = fuse_session_receive_buf(session, &buf) * if not worker_data.active_readers and worker_data.task_count < max_tasks: # <<<<<<<<<<<<<< * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', */ __pyx_t_5 = (!(__pyx_v_7pyfuse3_worker_data->active_readers != 0)); if (__pyx_t_5) { } else { __pyx_t_8 = __pyx_t_5; goto __pyx_L10_bool_binop_done; } __pyx_t_5 = (__pyx_v_7pyfuse3_worker_data->task_count < __pyx_cur_scope->__pyx_v_max_tasks); __pyx_t_8 = __pyx_t_5; __pyx_L10_bool_binop_done:; if (__pyx_t_8) { /* "src/internal.pxi":251 * res = fuse_session_receive_buf(session, &buf) * if not worker_data.active_readers and worker_data.task_count < max_tasks: * worker_data.task_count += 1 # <<<<<<<<<<<<<< * log.debug('%s: No tasks waiting, starting another worker (now %d total).', * name, worker_data.task_count) */ __pyx_v_7pyfuse3_worker_data->task_count = (__pyx_v_7pyfuse3_worker_data->task_count + 1); /* "src/internal.pxi":252 * if not worker_data.active_readers and worker_data.task_count < max_tasks: * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', # <<<<<<<<<<<<<< * name, worker_data.task_count) * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/internal.pxi":253 * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', * name, worker_data.task_count) # <<<<<<<<<<<<<< * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_7pyfuse3_worker_data->task_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[4] = {__pyx_t_1, __pyx_kp_u_s_No_tasks_waiting_starting_ano, __pyx_cur_scope->__pyx_v_name, __pyx_t_3}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/internal.pxi":254 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', * name, worker_data.task_count) * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, # <<<<<<<<<<<<<< * name=worker_data.get_name()) * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_nursery, __pyx_n_s_start_soon); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_session_loop); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_min_tasks); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_max_tasks); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_nursery); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nursery); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_cur_scope->__pyx_v_nursery); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_1); __pyx_t_6 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0; /* "src/internal.pxi":255 * name, worker_data.task_count) * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) # <<<<<<<<<<<<<< * * if res == -errno.EINTR: */ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = ((struct __pyx_vtabstruct_7pyfuse3__WorkerData *)__pyx_v_7pyfuse3_worker_data->__pyx_vtab)->get_name(__pyx_v_7pyfuse3_worker_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_name, __pyx_t_3) < 0) __PYX_ERR(2, 255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/internal.pxi":254 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', * name, worker_data.task_count) * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, # <<<<<<<<<<<<<< * name=worker_data.get_name()) * */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/internal.pxi":250 * * res = fuse_session_receive_buf(session, &buf) * if not worker_data.active_readers and worker_data.task_count < max_tasks: # <<<<<<<<<<<<<< * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', */ } /* "src/internal.pxi":257 * name=worker_data.get_name()) * * if res == -errno.EINTR: # <<<<<<<<<<<<<< * continue * elif res < 0: */ __pyx_t_8 = (__pyx_cur_scope->__pyx_v_res == (-EINTR)); if (__pyx_t_8) { /* "src/internal.pxi":258 * * if res == -errno.EINTR: * continue # <<<<<<<<<<<<<< * elif res < 0: * raise OSError(-res, 'fuse_session_receive_buf failed with ' */ goto __pyx_L4_continue; /* "src/internal.pxi":257 * name=worker_data.get_name()) * * if res == -errno.EINTR: # <<<<<<<<<<<<<< * continue * elif res < 0: */ } /* "src/internal.pxi":259 * if res == -errno.EINTR: * continue * elif res < 0: # <<<<<<<<<<<<<< * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) */ __pyx_t_8 = (__pyx_cur_scope->__pyx_v_res < 0); if (unlikely(__pyx_t_8)) { /* "src/internal.pxi":260 * continue * elif res < 0: * raise OSError(-res, 'fuse_session_receive_buf failed with ' # <<<<<<<<<<<<<< * + strerror(-res)) * elif res == 0: */ __pyx_t_3 = __Pyx_PyInt_From_int((-__pyx_cur_scope->__pyx_v_res)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "src/internal.pxi":261 * elif res < 0: * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) # <<<<<<<<<<<<<< * elif res == 0: * break */ __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_res)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyNumber_Add(__pyx_kp_u_fuse_session_receive_buf_failed, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/internal.pxi":260 * continue * elif res < 0: * raise OSError(-res, 'fuse_session_receive_buf failed with ' # <<<<<<<<<<<<<< * + strerror(-res)) * elif res == 0: */ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(2, 260, __pyx_L1_error) /* "src/internal.pxi":259 * if res == -errno.EINTR: * continue * elif res < 0: # <<<<<<<<<<<<<< * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) */ } /* "src/internal.pxi":262 * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) * elif res == 0: # <<<<<<<<<<<<<< * break * */ __pyx_t_8 = (__pyx_cur_scope->__pyx_v_res == 0); if (__pyx_t_8) { /* "src/internal.pxi":263 * + strerror(-res)) * elif res == 0: * break # <<<<<<<<<<<<<< * * # When fuse_session_process_buf() calls back into one of our handler */ goto __pyx_L5_break; /* "src/internal.pxi":262 * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) * elif res == 0: # <<<<<<<<<<<<<< * break * */ } /* "src/internal.pxi":269 * # py_retval. * #log.debug('%s: processing request...', name) * save_retval(None) # <<<<<<<<<<<<<< * fuse_session_process_buf(session, &buf) * if py_retval is not None: */ __pyx_f_7pyfuse3_save_retval(Py_None); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 269, __pyx_L1_error) /* "src/internal.pxi":270 * #log.debug('%s: processing request...', name) * save_retval(None) * fuse_session_process_buf(session, &buf) # <<<<<<<<<<<<<< * if py_retval is not None: * await py_retval */ fuse_session_process_buf(__pyx_v_7pyfuse3_session, (&__pyx_cur_scope->__pyx_v_buf)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 270, __pyx_L1_error) /* "src/internal.pxi":271 * save_retval(None) * fuse_session_process_buf(session, &buf) * if py_retval is not None: # <<<<<<<<<<<<<< * await py_retval * #log.debug('%s: processing complete.', name) */ __pyx_t_8 = (__pyx_v_7pyfuse3_py_retval != Py_None); if (__pyx_t_8) { /* "src/internal.pxi":272 * fuse_session_process_buf(session, &buf) * if py_retval is not None: * await py_retval # <<<<<<<<<<<<<< * #log.debug('%s: processing complete.', name) * */ __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_v_7pyfuse3_py_retval); __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L14_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 272, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(2, 272, __pyx_L1_error) } } /* "src/internal.pxi":271 * save_retval(None) * fuse_session_process_buf(session, &buf) * if py_retval is not None: # <<<<<<<<<<<<<< * await py_retval * #log.debug('%s: processing complete.', name) */ } __pyx_L4_continue:; } __pyx_L5_break:; /* "src/internal.pxi":275 * #log.debug('%s: processing complete.', name) * * log.debug('%s: terminated', name) # <<<<<<<<<<<<<< * stdlib.free(buf.mem) * worker_data.task_count -= 1 */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_kp_u_s_terminated, __pyx_cur_scope->__pyx_v_name}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/internal.pxi":276 * * log.debug('%s: terminated', name) * stdlib.free(buf.mem) # <<<<<<<<<<<<<< * worker_data.task_count -= 1 */ free(__pyx_cur_scope->__pyx_v_buf.mem); /* "src/internal.pxi":277 * log.debug('%s: terminated', name) * stdlib.free(buf.mem) * worker_data.task_count -= 1 # <<<<<<<<<<<<<< */ __pyx_v_7pyfuse3_worker_data->task_count = (__pyx_v_7pyfuse3_worker_data->task_count - 1); CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/internal.pxi":229 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("_session_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":143 * cdef readonly mode_t umask * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("RequestContext instances can't be pickled") * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_1__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_14RequestContext___getstate__, "RequestContext.__getstate__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_14RequestContext_1__getstate__ = {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_1__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_14RequestContext___getstate__}; static PyObject *__pyx_pw_7pyfuse3_14RequestContext_1__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__getstate__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_14RequestContext___getstate__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext___getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3.pyx":144 * * def __getstate__(self): * raise PicklingError("RequestContext instances can't be pickled") # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PicklingError); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u_RequestContext_instances_can_t_b}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(3, 144, __pyx_L1_error) /* "pyfuse3.pyx":143 * cdef readonly mode_t umask * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("RequestContext instances can't be pickled") * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.RequestContext.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":138 * ''' * * cdef readonly uid_t uid # <<<<<<<<<<<<<< * cdef readonly pid_t pid * cdef readonly gid_t gid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3uid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3uid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_3uid___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3uid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_uid_t(__pyx_v_self->uid); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.uid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":139 * * cdef readonly uid_t uid * cdef readonly pid_t pid # <<<<<<<<<<<<<< * cdef readonly gid_t gid * cdef readonly mode_t umask */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3pid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3pid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_3pid___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3pid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_pid_t(__pyx_v_self->pid); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.pid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":140 * cdef readonly uid_t uid * cdef readonly pid_t pid * cdef readonly gid_t gid # <<<<<<<<<<<<<< * cdef readonly mode_t umask * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3gid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3gid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_3gid___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3gid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_gid_t(__pyx_v_self->gid); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.gid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":141 * cdef readonly pid_t pid * cdef readonly gid_t gid * cdef readonly mode_t umask # <<<<<<<<<<<<<< * * def __getstate__(self): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5umask_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5umask_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_5umask___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_5umask___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_mode_t(__pyx_v_self->umask); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.umask.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_14RequestContext_2__reduce_cython__, "RequestContext.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_14RequestContext_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_14RequestContext_2__reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_2__reduce_cython__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_2__reduce_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.gid, self.pid, self.uid, self.umask) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None: */ __pyx_t_1 = __Pyx_PyInt_From_gid_t(__pyx_v_self->gid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_From_pid_t(__pyx_v_self->pid); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_uid_t(__pyx_v_self->uid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_mode_t(__pyx_v_self->umask); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_v_state = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.gid, self.pid, self.uid, self.umask) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None: * state += (_dict,) */ __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v__dict = __pyx_t_5; __pyx_t_5 = 0; /* "(tree fragment)":7 * state = (self.gid, self.pid, self.uid, self.umask) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_6 = (__pyx_v__dict != Py_None); if (__pyx_t_6) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict); __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* "(tree fragment)":9 * if _dict is not None: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = False */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.gid, self.pid, self.uid, self.umask) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = False # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state */ /*else*/ { __pyx_v_use_setstate = 0; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = False * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state * else: */ if (__pyx_v_use_setstate) { /* "(tree fragment)":13 * use_setstate = False * if use_setstate: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_RequestContext); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_240542287); __Pyx_GIVEREF(__pyx_int_240542287); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_240542287); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = False * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_RequestContext); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_240542287); __Pyx_GIVEREF(__pyx_int_240542287); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_240542287); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.RequestContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_14RequestContext_4__setstate_cython__, "RequestContext.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_14RequestContext_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_14RequestContext_4__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 16, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 16, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.RequestContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_4__setstate_cython__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_4__setstate_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(0, 17, __pyx_L1_error) __pyx_t_1 = __pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":162 * cdef readonly object update_size * * def __cinit__(self): # <<<<<<<<<<<<<< * self.update_atime = False * self.update_mtime = False */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_13SetattrFields_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_13SetattrFields_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields___cinit__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_13SetattrFields___cinit__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); /* "pyfuse3.pyx":163 * * def __cinit__(self): * self.update_atime = False # <<<<<<<<<<<<<< * self.update_mtime = False * self.update_ctime = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_atime); __Pyx_DECREF(__pyx_v_self->update_atime); __pyx_v_self->update_atime = Py_False; /* "pyfuse3.pyx":164 * def __cinit__(self): * self.update_atime = False * self.update_mtime = False # <<<<<<<<<<<<<< * self.update_ctime = False * self.update_mode = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_mtime); __Pyx_DECREF(__pyx_v_self->update_mtime); __pyx_v_self->update_mtime = Py_False; /* "pyfuse3.pyx":165 * self.update_atime = False * self.update_mtime = False * self.update_ctime = False # <<<<<<<<<<<<<< * self.update_mode = False * self.update_uid = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_ctime); __Pyx_DECREF(__pyx_v_self->update_ctime); __pyx_v_self->update_ctime = Py_False; /* "pyfuse3.pyx":166 * self.update_mtime = False * self.update_ctime = False * self.update_mode = False # <<<<<<<<<<<<<< * self.update_uid = False * self.update_gid = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_mode); __Pyx_DECREF(__pyx_v_self->update_mode); __pyx_v_self->update_mode = Py_False; /* "pyfuse3.pyx":167 * self.update_ctime = False * self.update_mode = False * self.update_uid = False # <<<<<<<<<<<<<< * self.update_gid = False * self.update_size = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_uid); __Pyx_DECREF(__pyx_v_self->update_uid); __pyx_v_self->update_uid = Py_False; /* "pyfuse3.pyx":168 * self.update_mode = False * self.update_uid = False * self.update_gid = False # <<<<<<<<<<<<<< * self.update_size = False * */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_gid); __Pyx_DECREF(__pyx_v_self->update_gid); __pyx_v_self->update_gid = Py_False; /* "pyfuse3.pyx":169 * self.update_uid = False * self.update_gid = False * self.update_size = False # <<<<<<<<<<<<<< * * def __getstate__(self): */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_size); __Pyx_DECREF(__pyx_v_self->update_size); __pyx_v_self->update_size = Py_False; /* "pyfuse3.pyx":162 * cdef readonly object update_size * * def __cinit__(self): # <<<<<<<<<<<<<< * self.update_atime = False * self.update_mtime = False */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":171 * self.update_size = False * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("SetattrFields instances can't be pickled") * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_13SetattrFields_2__getstate__, "SetattrFields.__getstate__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_13SetattrFields_3__getstate__ = {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_13SetattrFields_2__getstate__}; static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__getstate__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_2__getstate__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_2__getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3.pyx":172 * * def __getstate__(self): * raise PicklingError("SetattrFields instances can't be pickled") # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PicklingError); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u_SetattrFields_instances_can_t_be}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(3, 172, __pyx_L1_error) /* "pyfuse3.pyx":171 * self.update_size = False * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("SetattrFields instances can't be pickled") * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.SetattrFields.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":154 * ''' * * cdef readonly object update_atime # <<<<<<<<<<<<<< * cdef readonly object update_mtime * cdef readonly object update_ctime */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_atime_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_atime_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_12update_atime___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_atime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_atime); __pyx_r = __pyx_v_self->update_atime; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":155 * * cdef readonly object update_atime * cdef readonly object update_mtime # <<<<<<<<<<<<<< * cdef readonly object update_ctime * cdef readonly object update_mode */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_mtime_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_mtime_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_12update_mtime___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_mtime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_mtime); __pyx_r = __pyx_v_self->update_mtime; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":156 * cdef readonly object update_atime * cdef readonly object update_mtime * cdef readonly object update_ctime # <<<<<<<<<<<<<< * cdef readonly object update_mode * cdef readonly object update_uid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_ctime_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_ctime_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_12update_ctime___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_ctime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_ctime); __pyx_r = __pyx_v_self->update_ctime; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":157 * cdef readonly object update_mtime * cdef readonly object update_ctime * cdef readonly object update_mode # <<<<<<<<<<<<<< * cdef readonly object update_uid * cdef readonly object update_gid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_mode_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_mode_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_11update_mode___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_mode___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_mode); __pyx_r = __pyx_v_self->update_mode; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":158 * cdef readonly object update_ctime * cdef readonly object update_mode * cdef readonly object update_uid # <<<<<<<<<<<<<< * cdef readonly object update_gid * cdef readonly object update_size */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_uid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_uid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_10update_uid___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_uid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_uid); __pyx_r = __pyx_v_self->update_uid; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":159 * cdef readonly object update_mode * cdef readonly object update_uid * cdef readonly object update_gid # <<<<<<<<<<<<<< * cdef readonly object update_size * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_gid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_gid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_10update_gid___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_gid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_gid); __pyx_r = __pyx_v_self->update_gid; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":160 * cdef readonly object update_uid * cdef readonly object update_gid * cdef readonly object update_size # <<<<<<<<<<<<<< * * def __cinit__(self): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_size_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_11update_size___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_size___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_size); __pyx_r = __pyx_v_self->update_size; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_13SetattrFields_4__reduce_cython__, "SetattrFields.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_13SetattrFields_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_13SetattrFields_4__reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_4__reduce_cython__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.SetattrFields.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_13SetattrFields_6__setstate_cython__, "SetattrFields.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_13SetattrFields_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_13SetattrFields_6__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 3, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.SetattrFields.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_6__setstate_cython__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.SetattrFields.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":189 * cdef struct_stat *attr * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes___cinit__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes___cinit__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); /* "pyfuse3.pyx":190 * * def __cinit__(self): * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) # <<<<<<<<<<<<<< * self.attr = &self.fuse_param.attr * self.fuse_param.generation = 0 */ (void)(memset((&__pyx_v_self->fuse_param), 0, (sizeof(struct fuse_entry_param)))); /* "pyfuse3.pyx":191 * def __cinit__(self): * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr # <<<<<<<<<<<<<< * self.fuse_param.generation = 0 * self.fuse_param.entry_timeout = 300 */ __pyx_v_self->attr = (&__pyx_v_self->fuse_param.attr); /* "pyfuse3.pyx":192 * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr * self.fuse_param.generation = 0 # <<<<<<<<<<<<<< * self.fuse_param.entry_timeout = 300 * self.fuse_param.attr_timeout = 300 */ __pyx_v_self->fuse_param.generation = 0; /* "pyfuse3.pyx":193 * self.attr = &self.fuse_param.attr * self.fuse_param.generation = 0 * self.fuse_param.entry_timeout = 300 # <<<<<<<<<<<<<< * self.fuse_param.attr_timeout = 300 * */ __pyx_v_self->fuse_param.entry_timeout = 300.0; /* "pyfuse3.pyx":194 * self.fuse_param.generation = 0 * self.fuse_param.entry_timeout = 300 * self.fuse_param.attr_timeout = 300 # <<<<<<<<<<<<<< * * self.attr.st_mode = S_IFREG */ __pyx_v_self->fuse_param.attr_timeout = 300.0; /* "pyfuse3.pyx":196 * self.fuse_param.attr_timeout = 300 * * self.attr.st_mode = S_IFREG # <<<<<<<<<<<<<< * self.attr.st_blksize = 4096 * self.attr.st_nlink = 1 */ __pyx_v_self->attr->st_mode = S_IFREG; /* "pyfuse3.pyx":197 * * self.attr.st_mode = S_IFREG * self.attr.st_blksize = 4096 # <<<<<<<<<<<<<< * self.attr.st_nlink = 1 * */ __pyx_v_self->attr->st_blksize = 0x1000; /* "pyfuse3.pyx":198 * self.attr.st_mode = S_IFREG * self.attr.st_blksize = 4096 * self.attr.st_nlink = 1 # <<<<<<<<<<<<<< * * @property */ __pyx_v_self->attr->st_nlink = 1; /* "pyfuse3.pyx":189 * cdef struct_stat *attr * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":200 * self.attr.st_nlink = 1 * * @property # <<<<<<<<<<<<<< * def st_ino(self): * return self.fuse_param.ino */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_ino___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":202 * @property * def st_ino(self): * return self.fuse_param.ino # <<<<<<<<<<<<<< * @st_ino.setter * def st_ino(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_self->fuse_param.ino); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":200 * self.attr.st_nlink = 1 * * @property # <<<<<<<<<<<<<< * def st_ino(self): * return self.fuse_param.ino */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ino.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":203 * def st_ino(self): * return self.fuse_param.ino * @st_ino.setter # <<<<<<<<<<<<<< * def st_ino(self, val): * self.fuse_param.ino = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations fuse_ino_t __pyx_t_1; ino_t __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":205 * @st_ino.setter * def st_ino(self, val): * self.fuse_param.ino = val # <<<<<<<<<<<<<< * self.attr.st_ino = val * */ __pyx_t_1 = __Pyx_PyInt_As_fuse_ino_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 205, __pyx_L1_error) __pyx_v_self->fuse_param.ino = __pyx_t_1; /* "pyfuse3.pyx":206 * def st_ino(self, val): * self.fuse_param.ino = val * self.attr.st_ino = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_2 = __Pyx_PyInt_As_ino_t(__pyx_v_val); if (unlikely((__pyx_t_2 == ((ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 206, __pyx_L1_error) __pyx_v_self->attr->st_ino = __pyx_t_2; /* "pyfuse3.pyx":203 * def st_ino(self): * return self.fuse_param.ino * @st_ino.setter # <<<<<<<<<<<<<< * def st_ino(self, val): * self.fuse_param.ino = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ino.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":208 * self.attr.st_ino = val * * @property # <<<<<<<<<<<<<< * def generation(self): * '''The inode generation number''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10generation_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10generation_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10generation___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10generation___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":211 * def generation(self): * '''The inode generation number''' * return self.fuse_param.generation # <<<<<<<<<<<<<< * @generation.setter * def generation(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_self->fuse_param.generation); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":208 * self.attr.st_ino = val * * @property # <<<<<<<<<<<<<< * def generation(self): * '''The inode generation number''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.generation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":212 * '''The inode generation number''' * return self.fuse_param.generation * @generation.setter # <<<<<<<<<<<<<< * def generation(self, val): * self.fuse_param.generation = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_10generation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_10generation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10generation_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_10generation_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations uint64_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":214 * @generation.setter * def generation(self, val): * self.fuse_param.generation = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_uint64_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 214, __pyx_L1_error) __pyx_v_self->fuse_param.generation = __pyx_t_1; /* "pyfuse3.pyx":212 * '''The inode generation number''' * return self.fuse_param.generation * @generation.setter # <<<<<<<<<<<<<< * def generation(self, val): * self.fuse_param.generation = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.generation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":216 * self.fuse_param.generation = val * * @property # <<<<<<<<<<<<<< * def attr_timeout(self): * '''Validity timeout for the attributes of the directory entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":222 * Floating point numbers may be used. Units are seconds. * ''' * return self.fuse_param.attr_timeout # <<<<<<<<<<<<<< * @attr_timeout.setter * def attr_timeout(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->fuse_param.attr_timeout); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":216 * self.fuse_param.generation = val * * @property # <<<<<<<<<<<<<< * def attr_timeout(self): * '''Validity timeout for the attributes of the directory entry */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.attr_timeout.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":223 * ''' * return self.fuse_param.attr_timeout * @attr_timeout.setter # <<<<<<<<<<<<<< * def attr_timeout(self, val): * self.fuse_param.attr_timeout = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations double __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":225 * @attr_timeout.setter * def attr_timeout(self, val): * self.fuse_param.attr_timeout = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 225, __pyx_L1_error) __pyx_v_self->fuse_param.attr_timeout = __pyx_t_1; /* "pyfuse3.pyx":223 * ''' * return self.fuse_param.attr_timeout * @attr_timeout.setter # <<<<<<<<<<<<<< * def attr_timeout(self, val): * self.fuse_param.attr_timeout = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.attr_timeout.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":227 * self.fuse_param.attr_timeout = val * * @property # <<<<<<<<<<<<<< * def entry_timeout(self): * '''Validity timeout for the name/existence of the directory entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":233 * Floating point numbers may be used. Units are seconds. * ''' * return self.fuse_param.entry_timeout # <<<<<<<<<<<<<< * @entry_timeout.setter * def entry_timeout(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->fuse_param.entry_timeout); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":227 * self.fuse_param.attr_timeout = val * * @property # <<<<<<<<<<<<<< * def entry_timeout(self): * '''Validity timeout for the name/existence of the directory entry */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.entry_timeout.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":234 * ''' * return self.fuse_param.entry_timeout * @entry_timeout.setter # <<<<<<<<<<<<<< * def entry_timeout(self, val): * self.fuse_param.entry_timeout = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations double __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":236 * @entry_timeout.setter * def entry_timeout(self, val): * self.fuse_param.entry_timeout = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 236, __pyx_L1_error) __pyx_v_self->fuse_param.entry_timeout = __pyx_t_1; /* "pyfuse3.pyx":234 * ''' * return self.fuse_param.entry_timeout * @entry_timeout.setter # <<<<<<<<<<<<<< * def entry_timeout(self, val): * self.fuse_param.entry_timeout = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.entry_timeout.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":238 * self.fuse_param.entry_timeout = val * * @property # <<<<<<<<<<<<<< * def st_mode(self): * return self.attr.st_mode */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_mode___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":240 * @property * def st_mode(self): * return self.attr.st_mode # <<<<<<<<<<<<<< * @st_mode.setter * def st_mode(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_mode_t(__pyx_v_self->attr->st_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":238 * self.fuse_param.entry_timeout = val * * @property # <<<<<<<<<<<<<< * def st_mode(self): * return self.attr.st_mode */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mode.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":241 * def st_mode(self): * return self.attr.st_mode * @st_mode.setter # <<<<<<<<<<<<<< * def st_mode(self, val): * self.attr.st_mode = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations mode_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":243 * @st_mode.setter * def st_mode(self, val): * self.attr.st_mode = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_mode_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((mode_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 243, __pyx_L1_error) __pyx_v_self->attr->st_mode = __pyx_t_1; /* "pyfuse3.pyx":241 * def st_mode(self): * return self.attr.st_mode * @st_mode.setter # <<<<<<<<<<<<<< * def st_mode(self, val): * self.attr.st_mode = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mode.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":245 * self.attr.st_mode = val * * @property # <<<<<<<<<<<<<< * def st_nlink(self): * return self.attr.st_nlink */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":247 * @property * def st_nlink(self): * return self.attr.st_nlink # <<<<<<<<<<<<<< * @st_nlink.setter * def st_nlink(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_nlink_t(__pyx_v_self->attr->st_nlink); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":245 * self.attr.st_mode = val * * @property # <<<<<<<<<<<<<< * def st_nlink(self): * return self.attr.st_nlink */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_nlink.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":248 * def st_nlink(self): * return self.attr.st_nlink * @st_nlink.setter # <<<<<<<<<<<<<< * def st_nlink(self, val): * self.attr.st_nlink = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations nlink_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":250 * @st_nlink.setter * def st_nlink(self, val): * self.attr.st_nlink = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_nlink_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((nlink_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 250, __pyx_L1_error) __pyx_v_self->attr->st_nlink = __pyx_t_1; /* "pyfuse3.pyx":248 * def st_nlink(self): * return self.attr.st_nlink * @st_nlink.setter # <<<<<<<<<<<<<< * def st_nlink(self, val): * self.attr.st_nlink = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_nlink.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":252 * self.attr.st_nlink = val * * @property # <<<<<<<<<<<<<< * def st_uid(self): * return self.attr.st_uid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_uid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":254 * @property * def st_uid(self): * return self.attr.st_uid # <<<<<<<<<<<<<< * @st_uid.setter * def st_uid(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_uid_t(__pyx_v_self->attr->st_uid); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":252 * self.attr.st_nlink = val * * @property # <<<<<<<<<<<<<< * def st_uid(self): * return self.attr.st_uid */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_uid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":255 * def st_uid(self): * return self.attr.st_uid * @st_uid.setter # <<<<<<<<<<<<<< * def st_uid(self, val): * self.attr.st_uid = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations uid_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":257 * @st_uid.setter * def st_uid(self, val): * self.attr.st_uid = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_uid_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((uid_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 257, __pyx_L1_error) __pyx_v_self->attr->st_uid = __pyx_t_1; /* "pyfuse3.pyx":255 * def st_uid(self): * return self.attr.st_uid * @st_uid.setter # <<<<<<<<<<<<<< * def st_uid(self, val): * self.attr.st_uid = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_uid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":259 * self.attr.st_uid = val * * @property # <<<<<<<<<<<<<< * def st_gid(self): * return self.attr.st_gid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_gid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":261 * @property * def st_gid(self): * return self.attr.st_gid # <<<<<<<<<<<<<< * @st_gid.setter * def st_gid(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_gid_t(__pyx_v_self->attr->st_gid); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":259 * self.attr.st_uid = val * * @property # <<<<<<<<<<<<<< * def st_gid(self): * return self.attr.st_gid */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_gid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":262 * def st_gid(self): * return self.attr.st_gid * @st_gid.setter # <<<<<<<<<<<<<< * def st_gid(self, val): * self.attr.st_gid = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations gid_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":264 * @st_gid.setter * def st_gid(self, val): * self.attr.st_gid = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_gid_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((gid_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 264, __pyx_L1_error) __pyx_v_self->attr->st_gid = __pyx_t_1; /* "pyfuse3.pyx":262 * def st_gid(self): * return self.attr.st_gid * @st_gid.setter # <<<<<<<<<<<<<< * def st_gid(self, val): * self.attr.st_gid = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_gid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":266 * self.attr.st_gid = val * * @property # <<<<<<<<<<<<<< * def st_rdev(self): * return self.attr.st_rdev */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":268 * @property * def st_rdev(self): * return self.attr.st_rdev # <<<<<<<<<<<<<< * @st_rdev.setter * def st_rdev(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_dev_t(__pyx_v_self->attr->st_rdev); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":266 * self.attr.st_gid = val * * @property # <<<<<<<<<<<<<< * def st_rdev(self): * return self.attr.st_rdev */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_rdev.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":269 * def st_rdev(self): * return self.attr.st_rdev * @st_rdev.setter # <<<<<<<<<<<<<< * def st_rdev(self, val): * self.attr.st_rdev = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations dev_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":271 * @st_rdev.setter * def st_rdev(self, val): * self.attr.st_rdev = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_dev_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((dev_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 271, __pyx_L1_error) __pyx_v_self->attr->st_rdev = __pyx_t_1; /* "pyfuse3.pyx":269 * def st_rdev(self): * return self.attr.st_rdev * @st_rdev.setter # <<<<<<<<<<<<<< * def st_rdev(self, val): * self.attr.st_rdev = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_rdev.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":273 * self.attr.st_rdev = val * * @property # <<<<<<<<<<<<<< * def st_size(self): * return self.attr.st_size */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_size_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_size___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_size___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":275 * @property * def st_size(self): * return self.attr.st_size # <<<<<<<<<<<<<< * @st_size.setter * def st_size(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_off_t(__pyx_v_self->attr->st_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":273 * self.attr.st_rdev = val * * @property # <<<<<<<<<<<<<< * def st_size(self): * return self.attr.st_size */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":276 * def st_size(self): * return self.attr.st_size * @st_size.setter # <<<<<<<<<<<<<< * def st_size(self, val): * self.attr.st_size = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_size_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_size_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations off_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":278 * @st_size.setter * def st_size(self, val): * self.attr.st_size = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_off_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((off_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 278, __pyx_L1_error) __pyx_v_self->attr->st_size = __pyx_t_1; /* "pyfuse3.pyx":276 * def st_size(self): * return self.attr.st_size * @st_size.setter # <<<<<<<<<<<<<< * def st_size(self, val): * self.attr.st_size = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":280 * self.attr.st_size = val * * @property # <<<<<<<<<<<<<< * def st_blocks(self): * return self.attr.st_blocks */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":282 * @property * def st_blocks(self): * return self.attr.st_blocks # <<<<<<<<<<<<<< * @st_blocks.setter * def st_blocks(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_blkcnt_t(__pyx_v_self->attr->st_blocks); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":280 * self.attr.st_size = val * * @property # <<<<<<<<<<<<<< * def st_blocks(self): * return self.attr.st_blocks */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blocks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":283 * def st_blocks(self): * return self.attr.st_blocks * @st_blocks.setter # <<<<<<<<<<<<<< * def st_blocks(self, val): * self.attr.st_blocks = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations blkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":285 * @st_blocks.setter * def st_blocks(self, val): * self.attr.st_blocks = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_blkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((blkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 285, __pyx_L1_error) __pyx_v_self->attr->st_blocks = __pyx_t_1; /* "pyfuse3.pyx":283 * def st_blocks(self): * return self.attr.st_blocks * @st_blocks.setter # <<<<<<<<<<<<<< * def st_blocks(self, val): * self.attr.st_blocks = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blocks.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":287 * self.attr.st_blocks = val * * @property # <<<<<<<<<<<<<< * def st_blksize(self): * return self.attr.st_blksize */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":289 * @property * def st_blksize(self): * return self.attr.st_blksize # <<<<<<<<<<<<<< * @st_blksize.setter * def st_blksize(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_blksize_t(__pyx_v_self->attr->st_blksize); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":287 * self.attr.st_blocks = val * * @property # <<<<<<<<<<<<<< * def st_blksize(self): * return self.attr.st_blksize */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blksize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":290 * def st_blksize(self): * return self.attr.st_blksize * @st_blksize.setter # <<<<<<<<<<<<<< * def st_blksize(self, val): * self.attr.st_blksize = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations blksize_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":292 * @st_blksize.setter * def st_blksize(self, val): * self.attr.st_blksize = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_blksize_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((blksize_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 292, __pyx_L1_error) __pyx_v_self->attr->st_blksize = __pyx_t_1; /* "pyfuse3.pyx":290 * def st_blksize(self): * return self.attr.st_blksize * @st_blksize.setter # <<<<<<<<<<<<<< * def st_blksize(self, val): * self.attr.st_blksize = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blksize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":294 * self.attr.st_blksize = val * * @property # <<<<<<<<<<<<<< * def st_atime_ns(self): * '''Time of last access in (integer) nanoseconds''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":297 * def st_atime_ns(self): * '''Time of last access in (integer) nanoseconds''' * return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) # <<<<<<<<<<<<<< * @st_atime_ns.setter * def st_atime_ns(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_time_t(__pyx_v_self->attr->st_atime); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long(GET_ATIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pyfuse3.pyx":294 * self.attr.st_blksize = val * * @property # <<<<<<<<<<<<<< * def st_atime_ns(self): * '''Time of last access in (integer) nanoseconds''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_atime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":298 * '''Time of last access in (integer) nanoseconds''' * return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) * @st_atime_ns.setter # <<<<<<<<<<<<<< * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; time_t __pyx_t_3; long __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":300 * @st_atime_ns.setter * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC # <<<<<<<<<<<<<< * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_time_t(__pyx_t_2); if (unlikely((__pyx_t_3 == ((time_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->attr->st_atime = __pyx_t_3; /* "pyfuse3.pyx":301 * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * @property */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_long(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) __PYX_ERR(3, 301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_ATIME_NS(__pyx_v_self->attr, __pyx_t_4); /* "pyfuse3.pyx":298 * '''Time of last access in (integer) nanoseconds''' * return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) * @st_atime_ns.setter # <<<<<<<<<<<<<< * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_atime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":303 * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_mtime_ns(self): * '''Time of last modification in (integer) nanoseconds''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":306 * def st_mtime_ns(self): * '''Time of last modification in (integer) nanoseconds''' * return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) # <<<<<<<<<<<<<< * @st_mtime_ns.setter * def st_mtime_ns(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_time_t(__pyx_v_self->attr->st_mtime); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long(GET_MTIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pyfuse3.pyx":303 * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_mtime_ns(self): * '''Time of last modification in (integer) nanoseconds''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mtime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":307 * '''Time of last modification in (integer) nanoseconds''' * return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) * @st_mtime_ns.setter # <<<<<<<<<<<<<< * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; time_t __pyx_t_3; long __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":309 * @st_mtime_ns.setter * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC # <<<<<<<<<<<<<< * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_time_t(__pyx_t_2); if (unlikely((__pyx_t_3 == ((time_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 309, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->attr->st_mtime = __pyx_t_3; /* "pyfuse3.pyx":310 * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * @property */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_long(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) __PYX_ERR(3, 310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_MTIME_NS(__pyx_v_self->attr, __pyx_t_4); /* "pyfuse3.pyx":307 * '''Time of last modification in (integer) nanoseconds''' * return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) * @st_mtime_ns.setter # <<<<<<<<<<<<<< * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mtime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":312 * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_ctime_ns(self): * '''Time of last inode modification in (integer) nanoseconds''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":315 * def st_ctime_ns(self): * '''Time of last inode modification in (integer) nanoseconds''' * return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) # <<<<<<<<<<<<<< * @st_ctime_ns.setter * def st_ctime_ns(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_time_t(__pyx_v_self->attr->st_ctime); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long(GET_CTIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pyfuse3.pyx":312 * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_ctime_ns(self): * '''Time of last inode modification in (integer) nanoseconds''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ctime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":316 * '''Time of last inode modification in (integer) nanoseconds''' * return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) * @st_ctime_ns.setter # <<<<<<<<<<<<<< * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; time_t __pyx_t_3; long __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":318 * @st_ctime_ns.setter * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC # <<<<<<<<<<<<<< * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_time_t(__pyx_t_2); if (unlikely((__pyx_t_3 == ((time_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 318, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->attr->st_ctime = __pyx_t_3; /* "pyfuse3.pyx":319 * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * @property */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_long(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) __PYX_ERR(3, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_CTIME_NS(__pyx_v_self->attr, __pyx_t_4); /* "pyfuse3.pyx":316 * '''Time of last inode modification in (integer) nanoseconds''' * return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) * @st_ctime_ns.setter # <<<<<<<<<<<<<< * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ctime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":321 * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_birthtime_ns(self): * '''Time of inode creation in (integer) nanoseconds. */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":330 * # Use C macro to prevent compiler error on Linux * # (where st_birthtime does not exist) * return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC # <<<<<<<<<<<<<< * + GET_BIRTHTIME_NS(self.attr)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_long(GET_BIRTHTIME(__pyx_v_self->attr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":331 * # (where st_birthtime does not exist) * return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC * + GET_BIRTHTIME_NS(self.attr)) # <<<<<<<<<<<<<< * * @st_birthtime_ns.setter */ __pyx_t_2 = __Pyx_PyInt_From_long(GET_BIRTHTIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":330 * # Use C macro to prevent compiler error on Linux * # (where st_birthtime does not exist) * return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC # <<<<<<<<<<<<<< * + GET_BIRTHTIME_NS(self.attr)) * */ __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pyfuse3.pyx":321 * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_birthtime_ns(self): * '''Time of inode creation in (integer) nanoseconds. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_birthtime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":333 * + GET_BIRTHTIME_NS(self.attr)) * * @st_birthtime_ns.setter # <<<<<<<<<<<<<< * def st_birthtime_ns(self, val): * # Use C macro to prevent compiler error on Linux */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; long __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":337 * # Use C macro to prevent compiler error on Linux * # (where st_birthtime does not exist) * SET_BIRTHTIME(self.attr, val // _NANOS_PER_SEC) # <<<<<<<<<<<<<< * SET_BIRTHTIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_long(__pyx_t_2); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) __PYX_ERR(3, 337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; SET_BIRTHTIME(__pyx_v_self->attr, __pyx_t_3); /* "pyfuse3.pyx":338 * # (where st_birthtime does not exist) * SET_BIRTHTIME(self.attr, val // _NANOS_PER_SEC) * SET_BIRTHTIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * # Pickling and copy support */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyInt_As_long(__pyx_t_1); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) __PYX_ERR(3, 338, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_BIRTHTIME_NS(__pyx_v_self->attr, __pyx_t_3); /* "pyfuse3.pyx":333 * + GET_BIRTHTIME_NS(self.attr)) * * @st_birthtime_ns.setter # <<<<<<<<<<<<<< * def st_birthtime_ns(self, val): * # Use C macro to prevent compiler error on Linux */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_birthtime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":341 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_15EntryAttributes_2__getstate__, "EntryAttributes.__getstate__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_3__getstate__ = {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_2__getstate__}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__getstate__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_2__getstate__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_2__getstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_v_state = NULL; PyObject *__pyx_v_k = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3.pyx":342 * # Pickling and copy support * def __getstate__(self): * state = dict() # <<<<<<<<<<<<<< * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', */ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":343 * def __getstate__(self): * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', # <<<<<<<<<<<<<< * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', */ __pyx_t_1 = __pyx_tuple__36; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= 16) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(3, 343, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_k, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "pyfuse3.pyx":347 * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', * 'st_ctime_ns', 'st_mtime_ns', 'st_birthtime_ns'): * state[k] = getattr(self, k) # <<<<<<<<<<<<<< * return state * */ __pyx_t_3 = __Pyx_GetAttr(((PyObject *)__pyx_v_self), __pyx_v_k); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely((PyDict_SetItem(__pyx_v_state, __pyx_v_k, __pyx_t_3) < 0))) __PYX_ERR(3, 347, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":343 * def __getstate__(self): * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', # <<<<<<<<<<<<<< * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":348 * 'st_ctime_ns', 'st_mtime_ns', 'st_birthtime_ns'): * state[k] = getattr(self, k) * return state # <<<<<<<<<<<<<< * * def __setstate__(self, state): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_state); __pyx_r = __pyx_v_state; goto __pyx_L0; /* "pyfuse3.pyx":341 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v_k); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":350 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_15EntryAttributes_4__setstate__, "EntryAttributes.__setstate__(self, state)"); static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_5__setstate__ = {"__setstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_4__setstate__}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 350, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate__") < 0)) __PYX_ERR(3, 350, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 350, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_4__setstate__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), __pyx_v_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_4__setstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_state) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate__", 0); /* "pyfuse3.pyx":351 * * def __setstate__(self, state): * for (k,v) in state.items(): # <<<<<<<<<<<<<< * setattr(self, k, v) * */ __pyx_t_2 = 0; if (unlikely(__pyx_v_state == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(3, 351, __pyx_L1_error) } __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_state, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(3, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":352 * def __setstate__(self, state): * for (k,v) in state.items(): * setattr(self, k, v) # <<<<<<<<<<<<<< * * */ __pyx_t_8 = PyObject_SetAttr(((PyObject *)__pyx_v_self), __pyx_v_k, __pyx_v_v); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(3, 352, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":350 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_15EntryAttributes_6__reduce_cython__, "EntryAttributes.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_6__reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6__reduce_cython__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_15EntryAttributes_8__setstate_cython__, "EntryAttributes.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_8__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 3, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_8__setstate_cython__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":368 * cdef public bint nonseekable * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): # <<<<<<<<<<<<<< * self.fh = fh * self.direct_io = direct_io */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fh = 0; PyObject *__pyx_v_direct_io = 0; PyObject *__pyx_v_keep_cache = 0; PyObject *__pyx_v_nonseekable = 0; CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fh,&__pyx_n_s_direct_io,&__pyx_n_s_keep_cache,&__pyx_n_s_nonseekable,0}; PyObject* values[4] = {0,0,0,0}; values[0] = ((PyObject *)__pyx_int_0); values[1] = ((PyObject *)__pyx_int_0); values[2] = ((PyObject *)__pyx_int_1); values[3] = ((PyObject *)__pyx_int_0); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); switch (__pyx_nargs) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fh); if (value) { values[0] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 368, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_direct_io); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 368, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_keep_cache); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 368, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nonseekable); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 368, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(3, 368, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_fh = values[0]; __pyx_v_direct_io = values[1]; __pyx_v_keep_cache = values[2]; __pyx_v_nonseekable = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 4, __pyx_nargs); __PYX_ERR(3, 368, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_8FileInfo___cinit__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), __pyx_v_fh, __pyx_v_direct_io, __pyx_v_keep_cache, __pyx_v_nonseekable); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo___cinit__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_fh, PyObject *__pyx_v_direct_io, PyObject *__pyx_v_keep_cache, PyObject *__pyx_v_nonseekable) { int __pyx_r; __Pyx_RefNannyDeclarations uint64_t __pyx_t_1; int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__cinit__", 0); /* "pyfuse3.pyx":369 * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): * self.fh = fh # <<<<<<<<<<<<<< * self.direct_io = direct_io * self.keep_cache = keep_cache */ __pyx_t_1 = __Pyx_PyInt_As_uint64_t(__pyx_v_fh); if (unlikely((__pyx_t_1 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 369, __pyx_L1_error) __pyx_v_self->fh = __pyx_t_1; /* "pyfuse3.pyx":370 * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): * self.fh = fh * self.direct_io = direct_io # <<<<<<<<<<<<<< * self.keep_cache = keep_cache * self.nonseekable = nonseekable */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_direct_io); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 370, __pyx_L1_error) __pyx_v_self->direct_io = __pyx_t_2; /* "pyfuse3.pyx":371 * self.fh = fh * self.direct_io = direct_io * self.keep_cache = keep_cache # <<<<<<<<<<<<<< * self.nonseekable = nonseekable * */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keep_cache); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 371, __pyx_L1_error) __pyx_v_self->keep_cache = __pyx_t_2; /* "pyfuse3.pyx":372 * self.direct_io = direct_io * self.keep_cache = keep_cache * self.nonseekable = nonseekable # <<<<<<<<<<<<<< * * cdef _copy_to_fuse(self, fuse_file_info *out): */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_nonseekable); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 372, __pyx_L1_error) __pyx_v_self->nonseekable = __pyx_t_2; /* "pyfuse3.pyx":368 * cdef public bint nonseekable * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): # <<<<<<<<<<<<<< * self.fh = fh * self.direct_io = direct_io */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":374 * self.nonseekable = nonseekable * * cdef _copy_to_fuse(self, fuse_file_info *out): # <<<<<<<<<<<<<< * out.fh = self.fh * */ static PyObject *__pyx_f_7pyfuse3_8FileInfo__copy_to_fuse(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, struct fuse_file_info *__pyx_v_out) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations uint64_t __pyx_t_1; __Pyx_RefNannySetupContext("_copy_to_fuse", 0); /* "pyfuse3.pyx":375 * * cdef _copy_to_fuse(self, fuse_file_info *out): * out.fh = self.fh # <<<<<<<<<<<<<< * * # Due to how Cython generates its C code, GCC will complain about */ __pyx_t_1 = __pyx_v_self->fh; __pyx_v_out->fh = __pyx_t_1; /* "pyfuse3.pyx":380 * # assigning to the bitfields in the fuse_file_info struct. * # This is the workaround. * if self.direct_io: # <<<<<<<<<<<<<< * out.direct_io = 1 * else: */ if (__pyx_v_self->direct_io) { /* "pyfuse3.pyx":381 * # This is the workaround. * if self.direct_io: * out.direct_io = 1 # <<<<<<<<<<<<<< * else: * out.direct_io = 0 */ __pyx_v_out->direct_io = 1; /* "pyfuse3.pyx":380 * # assigning to the bitfields in the fuse_file_info struct. * # This is the workaround. * if self.direct_io: # <<<<<<<<<<<<<< * out.direct_io = 1 * else: */ goto __pyx_L3; } /* "pyfuse3.pyx":383 * out.direct_io = 1 * else: * out.direct_io = 0 # <<<<<<<<<<<<<< * * if self.keep_cache: */ /*else*/ { __pyx_v_out->direct_io = 0; } __pyx_L3:; /* "pyfuse3.pyx":385 * out.direct_io = 0 * * if self.keep_cache: # <<<<<<<<<<<<<< * out.keep_cache = 1 * else: */ if (__pyx_v_self->keep_cache) { /* "pyfuse3.pyx":386 * * if self.keep_cache: * out.keep_cache = 1 # <<<<<<<<<<<<<< * else: * out.keep_cache = 0 */ __pyx_v_out->keep_cache = 1; /* "pyfuse3.pyx":385 * out.direct_io = 0 * * if self.keep_cache: # <<<<<<<<<<<<<< * out.keep_cache = 1 * else: */ goto __pyx_L4; } /* "pyfuse3.pyx":388 * out.keep_cache = 1 * else: * out.keep_cache = 0 # <<<<<<<<<<<<<< * * if self.nonseekable: */ /*else*/ { __pyx_v_out->keep_cache = 0; } __pyx_L4:; /* "pyfuse3.pyx":390 * out.keep_cache = 0 * * if self.nonseekable: # <<<<<<<<<<<<<< * out.nonseekable = 1 * else: */ if (__pyx_v_self->nonseekable) { /* "pyfuse3.pyx":391 * * if self.nonseekable: * out.nonseekable = 1 # <<<<<<<<<<<<<< * else: * out.nonseekable = 0 */ __pyx_v_out->nonseekable = 1; /* "pyfuse3.pyx":390 * out.keep_cache = 0 * * if self.nonseekable: # <<<<<<<<<<<<<< * out.nonseekable = 1 * else: */ goto __pyx_L5; } /* "pyfuse3.pyx":393 * out.nonseekable = 1 * else: * out.nonseekable = 0 # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_v_out->nonseekable = 0; } __pyx_L5:; /* "pyfuse3.pyx":374 * self.nonseekable = nonseekable * * cdef _copy_to_fuse(self, fuse_file_info *out): # <<<<<<<<<<<<<< * out.fh = self.fh * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":363 * ''' * * cdef public uint64_t fh # <<<<<<<<<<<<<< * cdef public bint direct_io * cdef public bint keep_cache */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_2fh_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_2fh_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_2fh___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2fh___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_self->fh); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.fh.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_2fh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_2fh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_2fh_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_2fh_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations uint64_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); __pyx_t_1 = __Pyx_PyInt_As_uint64_t(__pyx_v_value); if (unlikely((__pyx_t_1 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 363, __pyx_L1_error) __pyx_v_self->fh = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.fh.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":364 * * cdef public uint64_t fh * cdef public bint direct_io # <<<<<<<<<<<<<< * cdef public bint keep_cache * cdef public bint nonseekable */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_9direct_io_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_9direct_io_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_9direct_io___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_9direct_io___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->direct_io); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.direct_io.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_9direct_io_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_9direct_io_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_9direct_io_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_9direct_io_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 364, __pyx_L1_error) __pyx_v_self->direct_io = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.direct_io.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":365 * cdef public uint64_t fh * cdef public bint direct_io * cdef public bint keep_cache # <<<<<<<<<<<<<< * cdef public bint nonseekable * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_10keep_cache_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_10keep_cache_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_10keep_cache___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_10keep_cache___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->keep_cache); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.keep_cache.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_10keep_cache_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_10keep_cache_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 365, __pyx_L1_error) __pyx_v_self->keep_cache = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.keep_cache.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":366 * cdef public bint direct_io * cdef public bint keep_cache * cdef public bint nonseekable # <<<<<<<<<<<<<< * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_11nonseekable_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_11nonseekable_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_11nonseekable___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_11nonseekable___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->nonseekable); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.nonseekable.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_11nonseekable_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_11nonseekable_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 366, __pyx_L1_error) __pyx_v_self->nonseekable = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.nonseekable.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_8FileInfo_2__reduce_cython__, "FileInfo.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_8FileInfo_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_8FileInfo_2__reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_2__reduce_cython__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_8FileInfo_4__setstate_cython__, "FileInfo.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_8FileInfo_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_8FileInfo_4__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 3, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_4__setstate_cython__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":406 * cdef statvfs stat * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.stat, 0, sizeof(statvfs)) * */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData___cinit__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData___cinit__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); /* "pyfuse3.pyx":407 * * def __cinit__(self): * string.memset(&self.stat, 0, sizeof(statvfs)) # <<<<<<<<<<<<<< * * @property */ (void)(memset((&__pyx_v_self->stat), 0, (sizeof(struct statvfs)))); /* "pyfuse3.pyx":406 * cdef statvfs stat * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.stat, 0, sizeof(statvfs)) * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":409 * string.memset(&self.stat, 0, sizeof(statvfs)) * * @property # <<<<<<<<<<<<<< * def f_bsize(self): * return self.stat.f_bsize */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":411 * @property * def f_bsize(self): * return self.stat.f_bsize # <<<<<<<<<<<<<< * @f_bsize.setter * def f_bsize(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_long(__pyx_v_self->stat.f_bsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":409 * string.memset(&self.stat, 0, sizeof(statvfs)) * * @property # <<<<<<<<<<<<<< * def f_bsize(self): * return self.stat.f_bsize */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":412 * def f_bsize(self): * return self.stat.f_bsize * @f_bsize.setter # <<<<<<<<<<<<<< * def f_bsize(self, val): * self.stat.f_bsize = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations unsigned long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":414 * @f_bsize.setter * def f_bsize(self, val): * self.stat.f_bsize = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_unsigned_long(__pyx_v_val); if (unlikely((__pyx_t_1 == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(3, 414, __pyx_L1_error) __pyx_v_self->stat.f_bsize = __pyx_t_1; /* "pyfuse3.pyx":412 * def f_bsize(self): * return self.stat.f_bsize * @f_bsize.setter # <<<<<<<<<<<<<< * def f_bsize(self, val): * self.stat.f_bsize = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bsize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":416 * self.stat.f_bsize = val * * @property # <<<<<<<<<<<<<< * def f_frsize(self): * return self.stat.f_frsize */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_frsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":418 * @property * def f_frsize(self): * return self.stat.f_frsize # <<<<<<<<<<<<<< * @f_frsize.setter * def f_frsize(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_long(__pyx_v_self->stat.f_frsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":416 * self.stat.f_bsize = val * * @property # <<<<<<<<<<<<<< * def f_frsize(self): * return self.stat.f_frsize */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_frsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":419 * def f_frsize(self): * return self.stat.f_frsize * @f_frsize.setter # <<<<<<<<<<<<<< * def f_frsize(self, val): * self.stat.f_frsize = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations unsigned long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":421 * @f_frsize.setter * def f_frsize(self, val): * self.stat.f_frsize = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_unsigned_long(__pyx_v_val); if (unlikely((__pyx_t_1 == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(3, 421, __pyx_L1_error) __pyx_v_self->stat.f_frsize = __pyx_t_1; /* "pyfuse3.pyx":419 * def f_frsize(self): * return self.stat.f_frsize * @f_frsize.setter # <<<<<<<<<<<<<< * def f_frsize(self, val): * self.stat.f_frsize = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_frsize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":423 * self.stat.f_frsize = val * * @property # <<<<<<<<<<<<<< * def f_blocks(self): * return self.stat.f_blocks */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_blocks___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":425 * @property * def f_blocks(self): * return self.stat.f_blocks # <<<<<<<<<<<<<< * @f_blocks.setter * def f_blocks(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_fsblkcnt_t(__pyx_v_self->stat.f_blocks); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":423 * self.stat.f_frsize = val * * @property # <<<<<<<<<<<<<< * def f_blocks(self): * return self.stat.f_blocks */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_blocks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":426 * def f_blocks(self): * return self.stat.f_blocks * @f_blocks.setter # <<<<<<<<<<<<<< * def f_blocks(self, val): * self.stat.f_blocks = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations fsblkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":428 * @f_blocks.setter * def f_blocks(self, val): * self.stat.f_blocks = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_fsblkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsblkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 428, __pyx_L1_error) __pyx_v_self->stat.f_blocks = __pyx_t_1; /* "pyfuse3.pyx":426 * def f_blocks(self): * return self.stat.f_blocks * @f_blocks.setter # <<<<<<<<<<<<<< * def f_blocks(self, val): * self.stat.f_blocks = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_blocks.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":430 * self.stat.f_blocks = val * * @property # <<<<<<<<<<<<<< * def f_bfree(self): * return self.stat.f_bfree */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bfree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":432 * @property * def f_bfree(self): * return self.stat.f_bfree # <<<<<<<<<<<<<< * @f_bfree.setter * def f_bfree(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_fsblkcnt_t(__pyx_v_self->stat.f_bfree); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":430 * self.stat.f_blocks = val * * @property # <<<<<<<<<<<<<< * def f_bfree(self): * return self.stat.f_bfree */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bfree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":433 * def f_bfree(self): * return self.stat.f_bfree * @f_bfree.setter # <<<<<<<<<<<<<< * def f_bfree(self, val): * self.stat.f_bfree = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations fsblkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":435 * @f_bfree.setter * def f_bfree(self, val): * self.stat.f_bfree = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_fsblkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsblkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 435, __pyx_L1_error) __pyx_v_self->stat.f_bfree = __pyx_t_1; /* "pyfuse3.pyx":433 * def f_bfree(self): * return self.stat.f_bfree * @f_bfree.setter # <<<<<<<<<<<<<< * def f_bfree(self, val): * self.stat.f_bfree = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bfree.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":437 * self.stat.f_bfree = val * * @property # <<<<<<<<<<<<<< * def f_bavail(self): * return self.stat.f_bavail */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_bavail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":439 * @property * def f_bavail(self): * return self.stat.f_bavail # <<<<<<<<<<<<<< * @f_bavail.setter * def f_bavail(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_fsblkcnt_t(__pyx_v_self->stat.f_bavail); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":437 * self.stat.f_bfree = val * * @property # <<<<<<<<<<<<<< * def f_bavail(self): * return self.stat.f_bavail */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bavail.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":440 * def f_bavail(self): * return self.stat.f_bavail * @f_bavail.setter # <<<<<<<<<<<<<< * def f_bavail(self, val): * self.stat.f_bavail = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations fsblkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":442 * @f_bavail.setter * def f_bavail(self, val): * self.stat.f_bavail = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_fsblkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsblkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 442, __pyx_L1_error) __pyx_v_self->stat.f_bavail = __pyx_t_1; /* "pyfuse3.pyx":440 * def f_bavail(self): * return self.stat.f_bavail * @f_bavail.setter # <<<<<<<<<<<<<< * def f_bavail(self, val): * self.stat.f_bavail = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bavail.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":444 * self.stat.f_bavail = val * * @property # <<<<<<<<<<<<<< * def f_files(self): * return self.stat.f_files */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_files_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_files_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_files___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_files___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":446 * @property * def f_files(self): * return self.stat.f_files # <<<<<<<<<<<<<< * @f_files.setter * def f_files(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_fsfilcnt_t(__pyx_v_self->stat.f_files); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":444 * self.stat.f_bavail = val * * @property # <<<<<<<<<<<<<< * def f_files(self): * return self.stat.f_files */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_files.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":447 * def f_files(self): * return self.stat.f_files * @f_files.setter # <<<<<<<<<<<<<< * def f_files(self, val): * self.stat.f_files = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_files_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_files_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_files_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_files_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations fsfilcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":449 * @f_files.setter * def f_files(self, val): * self.stat.f_files = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_fsfilcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsfilcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 449, __pyx_L1_error) __pyx_v_self->stat.f_files = __pyx_t_1; /* "pyfuse3.pyx":447 * def f_files(self): * return self.stat.f_files * @f_files.setter # <<<<<<<<<<<<<< * def f_files(self, val): * self.stat.f_files = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_files.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":451 * self.stat.f_files = val * * @property # <<<<<<<<<<<<<< * def f_ffree(self): * return self.stat.f_ffree */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_ffree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":453 * @property * def f_ffree(self): * return self.stat.f_ffree # <<<<<<<<<<<<<< * @f_ffree.setter * def f_ffree(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_fsfilcnt_t(__pyx_v_self->stat.f_ffree); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":451 * self.stat.f_files = val * * @property # <<<<<<<<<<<<<< * def f_ffree(self): * return self.stat.f_ffree */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_ffree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":454 * def f_ffree(self): * return self.stat.f_ffree * @f_ffree.setter # <<<<<<<<<<<<<< * def f_ffree(self, val): * self.stat.f_ffree = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations fsfilcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":456 * @f_ffree.setter * def f_ffree(self, val): * self.stat.f_ffree = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_fsfilcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsfilcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 456, __pyx_L1_error) __pyx_v_self->stat.f_ffree = __pyx_t_1; /* "pyfuse3.pyx":454 * def f_ffree(self): * return self.stat.f_ffree * @f_ffree.setter # <<<<<<<<<<<<<< * def f_ffree(self, val): * self.stat.f_ffree = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_ffree.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":458 * self.stat.f_ffree = val * * @property # <<<<<<<<<<<<<< * def f_favail(self): * return self.stat.f_favail */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_favail_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_favail_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_favail___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_favail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":460 * @property * def f_favail(self): * return self.stat.f_favail # <<<<<<<<<<<<<< * @f_favail.setter * def f_favail(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_fsfilcnt_t(__pyx_v_self->stat.f_favail); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":458 * self.stat.f_ffree = val * * @property # <<<<<<<<<<<<<< * def f_favail(self): * return self.stat.f_favail */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_favail.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":461 * def f_favail(self): * return self.stat.f_favail * @f_favail.setter # <<<<<<<<<<<<<< * def f_favail(self, val): * self.stat.f_favail = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_favail_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_favail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations fsfilcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":463 * @f_favail.setter * def f_favail(self, val): * self.stat.f_favail = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyInt_As_fsfilcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsfilcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 463, __pyx_L1_error) __pyx_v_self->stat.f_favail = __pyx_t_1; /* "pyfuse3.pyx":461 * def f_favail(self): * return self.stat.f_favail * @f_favail.setter # <<<<<<<<<<<<<< * def f_favail(self, val): * self.stat.f_favail = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_favail.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":465 * self.stat.f_favail = val * * @property # <<<<<<<<<<<<<< * def f_namemax(self): * return self.stat.f_namemax */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_9f_namemax___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":467 * @property * def f_namemax(self): * return self.stat.f_namemax # <<<<<<<<<<<<<< * @f_namemax.setter * def f_namemax(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_long(__pyx_v_self->stat.f_namemax); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":465 * self.stat.f_favail = val * * @property # <<<<<<<<<<<<<< * def f_namemax(self): * return self.stat.f_namemax */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_namemax.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":468 * def f_namemax(self): * return self.stat.f_namemax * @f_namemax.setter # <<<<<<<<<<<<<< * def f_namemax(self, val): * self.stat.f_namemax = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations unsigned long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3.pyx":470 * @f_namemax.setter * def f_namemax(self, val): * self.stat.f_namemax = val # <<<<<<<<<<<<<< * * # Pickling and copy support */ __pyx_t_1 = __Pyx_PyInt_As_unsigned_long(__pyx_v_val); if (unlikely((__pyx_t_1 == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(3, 470, __pyx_L1_error) __pyx_v_self->stat.f_namemax = __pyx_t_1; /* "pyfuse3.pyx":468 * def f_namemax(self): * return self.stat.f_namemax * @f_namemax.setter # <<<<<<<<<<<<<< * def f_namemax(self, val): * self.stat.f_namemax = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_namemax.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":473 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_11StatvfsData_2__getstate__, "StatvfsData.__getstate__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_3__getstate__ = {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_2__getstate__}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__getstate__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_2__getstate__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_2__getstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_v_state = NULL; PyObject *__pyx_v_k = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3.pyx":474 * # Pickling and copy support * def __getstate__(self): * state = dict() # <<<<<<<<<<<<<< * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', */ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":475 * def __getstate__(self): * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', # <<<<<<<<<<<<<< * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): */ __pyx_t_1 = __pyx_tuple__37; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= 9) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(3, 475, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_k, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "pyfuse3.pyx":478 * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): * state[k] = getattr(self, k) # <<<<<<<<<<<<<< * return state * */ __pyx_t_3 = __Pyx_GetAttr(((PyObject *)__pyx_v_self), __pyx_v_k); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely((PyDict_SetItem(__pyx_v_state, __pyx_v_k, __pyx_t_3) < 0))) __PYX_ERR(3, 478, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":475 * def __getstate__(self): * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', # <<<<<<<<<<<<<< * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":479 * 'f_namemax'): * state[k] = getattr(self, k) * return state # <<<<<<<<<<<<<< * * def __setstate__(self, state): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_state); __pyx_r = __pyx_v_state; goto __pyx_L0; /* "pyfuse3.pyx":473 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.StatvfsData.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v_k); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":481 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_11StatvfsData_4__setstate__, "StatvfsData.__setstate__(self, state)"); static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_5__setstate__ = {"__setstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_4__setstate__}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 481, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate__") < 0)) __PYX_ERR(3, 481, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 481, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_4__setstate__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), __pyx_v_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_4__setstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_state) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate__", 0); /* "pyfuse3.pyx":482 * * def __setstate__(self, state): * for (k,v) in state.items(): # <<<<<<<<<<<<<< * setattr(self, k, v) * */ __pyx_t_2 = 0; if (unlikely(__pyx_v_state == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(3, 482, __pyx_L1_error) } __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_state, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(3, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":483 * def __setstate__(self, state): * for (k,v) in state.items(): * setattr(self, k, v) # <<<<<<<<<<<<<< * * */ __pyx_t_8 = PyObject_SetAttr(((PyObject *)__pyx_v_self), __pyx_v_k, __pyx_v_v); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(3, 483, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":481 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_11StatvfsData_6__reduce_cython__, "StatvfsData.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_6__reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_6__reduce_cython__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_11StatvfsData_8__setstate_cython__, "StatvfsData.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_8__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 3, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8__setstate_cython__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":501 * cdef readonly int errno_ * * @property # <<<<<<<<<<<<<< * def errno(self): * '''Error code to return to client process''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5errno_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5errno_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_5errno___get__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_5errno___get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3.pyx":504 * def errno(self): * '''Error code to return to client process''' * return self.errno_ # <<<<<<<<<<<<<< * * def __cinit__(self, errno): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->errno_); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":501 * cdef readonly int errno_ * * @property # <<<<<<<<<<<<<< * def errno(self): * '''Error code to return to client process''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FUSEError.errno.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":506 * return self.errno_ * * def __cinit__(self, errno): # <<<<<<<<<<<<<< * self.errno_ = errno * */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_9FUSEError_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_9FUSEError_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_errno = 0; CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_errno,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_errno)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 506, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(3, 506, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); } __pyx_v_errno = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 506, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_9FUSEError___cinit__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self), __pyx_v_errno); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_9FUSEError___cinit__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, PyObject *__pyx_v_errno) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__cinit__", 0); /* "pyfuse3.pyx":507 * * def __cinit__(self, errno): * self.errno_ = errno # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_errno); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 507, __pyx_L1_error) __pyx_v_self->errno_ = __pyx_t_1; /* "pyfuse3.pyx":506 * return self.errno_ * * def __cinit__(self, errno): # <<<<<<<<<<<<<< * self.errno_ = errno * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":509 * self.errno_ = errno * * def __str__(self): # <<<<<<<<<<<<<< * return strerror(self.errno_) * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_3__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_3__str__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_2__str__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_2__str__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); /* "pyfuse3.pyx":510 * * def __str__(self): * return strerror(self.errno_) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7pyfuse3_strerror(__pyx_v_self->errno_); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3.pyx":509 * self.errno_ = errno * * def __str__(self): # <<<<<<<<<<<<<< * return strerror(self.errno_) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FUSEError.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":499 * # during C compilation (maybe something else declares errno as * # a macro?) * cdef readonly int errno_ # <<<<<<<<<<<<<< * * @property */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_6errno__1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_6errno__1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_6errno____get__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6errno____get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->errno_); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FUSEError.errno_.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_9FUSEError_4__reduce_cython__, "FUSEError.__reduce_cython__(self)"); static PyMethodDef __pyx_mdef_7pyfuse3_9FUSEError_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_9FUSEError_4__reduce_cython__}; static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_4__reduce_cython__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_9FUSEError_6__setstate_cython__, "FUSEError.__setstate_cython__(self, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_9FUSEError_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_9FUSEError_6__setstate_cython__}; static PyObject *__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(0, 3, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v___pyx_state = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_6__setstate_cython__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":513 * * * def listdir(path): # <<<<<<<<<<<<<< * '''Like `os.listdir`, but releases the GIL. * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_96listdir(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_95listdir, "listdir(path)\nLike `os.listdir`, but releases the GIL.\n\n This function returns an iterator over the directory entries in *path*.\n\n The returned values are of type :ref:`str `. Surrogate\n escape coding (cf. `PEP 383 `_)\n is used for directory names that do not have a string representation.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_96listdir = {"listdir", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_96listdir, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_95listdir}; static PyObject *__pyx_pw_7pyfuse3_96listdir(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("listdir (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 513, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "listdir") < 0)) __PYX_ERR(3, 513, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_path = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("listdir", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 513, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.listdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_95listdir(__pyx_self, __pyx_v_path); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_95listdir(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) { DIR *__pyx_v_dirp; struct dirent *__pyx_v_res; char *__pyx_v_buf; PyObject *__pyx_v_path_b = NULL; PyObject *__pyx_v_names = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("listdir", 0); /* "pyfuse3.pyx":523 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ __pyx_t_1 = PyUnicode_Check(__pyx_v_path); __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":524 * * if not isinstance(path, str): * raise TypeError('*path* argument must be of type str') # <<<<<<<<<<<<<< * * cdef libc_extra.DIR* dirp */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 524, __pyx_L1_error) /* "pyfuse3.pyx":523 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ } /* "pyfuse3.pyx":530 * cdef char* buf * * path_b = str2bytes(path) # <<<<<<<<<<<<<< * buf = path_b * */ __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_path_b = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3.pyx":531 * * path_b = str2bytes(path) * buf = path_b # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_4 = __Pyx_PyObject_AsWritableString(__pyx_v_path_b); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(3, 531, __pyx_L1_error) __pyx_v_buf = ((char *)__pyx_t_4); /* "pyfuse3.pyx":533 * buf = path_b * * with nogil: # <<<<<<<<<<<<<< * dirp = libc_extra.opendir(buf) * */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":534 * * with nogil: * dirp = libc_extra.opendir(buf) # <<<<<<<<<<<<<< * * if dirp == NULL: */ __pyx_v_dirp = opendir(__pyx_v_buf); } /* "pyfuse3.pyx":533 * buf = path_b * * with nogil: # <<<<<<<<<<<<<< * dirp = libc_extra.opendir(buf) * */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pyfuse3.pyx":536 * dirp = libc_extra.opendir(buf) * * if dirp == NULL: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ __pyx_t_2 = (__pyx_v_dirp == NULL); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":537 * * if dirp == NULL: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * * names = list() */ __pyx_t_3 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_path); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(3, 537, __pyx_L1_error) /* "pyfuse3.pyx":536 * dirp = libc_extra.opendir(buf) * * if dirp == NULL: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ } /* "pyfuse3.pyx":539 * raise OSError(errno.errno, strerror(errno.errno), path) * * names = list() # <<<<<<<<<<<<<< * while True: * errno.errno = 0 */ __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_names = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":540 * * names = list() * while True: # <<<<<<<<<<<<<< * errno.errno = 0 * with nogil: */ while (1) { /* "pyfuse3.pyx":541 * names = list() * while True: * errno.errno = 0 # <<<<<<<<<<<<<< * with nogil: * res = libc_extra.readdir(dirp) */ errno = 0; /* "pyfuse3.pyx":542 * while True: * errno.errno = 0 * with nogil: # <<<<<<<<<<<<<< * res = libc_extra.readdir(dirp) * */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":543 * errno.errno = 0 * with nogil: * res = libc_extra.readdir(dirp) # <<<<<<<<<<<<<< * * if res is NULL: */ __pyx_v_res = readdir(__pyx_v_dirp); } /* "pyfuse3.pyx":542 * while True: * errno.errno = 0 * with nogil: # <<<<<<<<<<<<<< * res = libc_extra.readdir(dirp) * */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pyfuse3.pyx":545 * res = libc_extra.readdir(dirp) * * if res is NULL: # <<<<<<<<<<<<<< * if errno.errno != 0: * raise OSError(errno.errno, strerror(errno.errno), path) */ __pyx_t_2 = (__pyx_v_res == NULL); if (__pyx_t_2) { /* "pyfuse3.pyx":546 * * if res is NULL: * if errno.errno != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * else: */ __pyx_t_2 = (errno != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":547 * if res is NULL: * if errno.errno != 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * else: * break */ __pyx_t_5 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_path); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(3, 547, __pyx_L1_error) /* "pyfuse3.pyx":546 * * if res is NULL: * if errno.errno != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * else: */ } /* "pyfuse3.pyx":549 * raise OSError(errno.errno, strerror(errno.errno), path) * else: * break # <<<<<<<<<<<<<< * if string.strcmp(res.d_name, b'.') == 0 or \ * string.strcmp(res.d_name, b'..') == 0: */ /*else*/ { goto __pyx_L9_break; } /* "pyfuse3.pyx":545 * res = libc_extra.readdir(dirp) * * if res is NULL: # <<<<<<<<<<<<<< * if errno.errno != 0: * raise OSError(errno.errno, strerror(errno.errno), path) */ } /* "pyfuse3.pyx":550 * else: * break * if string.strcmp(res.d_name, b'.') == 0 or \ # <<<<<<<<<<<<<< * string.strcmp(res.d_name, b'..') == 0: * continue */ __pyx_t_1 = (strcmp(__pyx_v_res->d_name, ((char const *)".")) == 0); if (!__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L18_bool_binop_done; } /* "pyfuse3.pyx":551 * break * if string.strcmp(res.d_name, b'.') == 0 or \ * string.strcmp(res.d_name, b'..') == 0: # <<<<<<<<<<<<<< * continue * */ __pyx_t_1 = (strcmp(__pyx_v_res->d_name, ((char const *)"..")) == 0); __pyx_t_2 = __pyx_t_1; __pyx_L18_bool_binop_done:; /* "pyfuse3.pyx":550 * else: * break * if string.strcmp(res.d_name, b'.') == 0 or \ # <<<<<<<<<<<<<< * string.strcmp(res.d_name, b'..') == 0: * continue */ if (__pyx_t_2) { /* "pyfuse3.pyx":552 * if string.strcmp(res.d_name, b'.') == 0 or \ * string.strcmp(res.d_name, b'..') == 0: * continue # <<<<<<<<<<<<<< * * names.append(bytes2str(PyBytes_FromString(res.d_name))) */ goto __pyx_L8_continue; /* "pyfuse3.pyx":550 * else: * break * if string.strcmp(res.d_name, b'.') == 0 or \ # <<<<<<<<<<<<<< * string.strcmp(res.d_name, b'..') == 0: * continue */ } /* "pyfuse3.pyx":554 * continue * * names.append(bytes2str(PyBytes_FromString(res.d_name))) # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_6 = PyBytes_FromString(__pyx_v_res->d_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __pyx_f_7pyfuse3_bytes2str(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_names, __pyx_t_3); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(3, 554, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L8_continue:; } __pyx_L9_break:; /* "pyfuse3.pyx":556 * names.append(bytes2str(PyBytes_FromString(res.d_name))) * * with nogil: # <<<<<<<<<<<<<< * libc_extra.closedir(dirp) * */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":557 * * with nogil: * libc_extra.closedir(dirp) # <<<<<<<<<<<<<< * * return names */ (void)(closedir(__pyx_v_dirp)); } /* "pyfuse3.pyx":556 * names.append(bytes2str(PyBytes_FromString(res.d_name))) * * with nogil: # <<<<<<<<<<<<<< * libc_extra.closedir(dirp) * */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L22; } __pyx_L22:; } } /* "pyfuse3.pyx":559 * libc_extra.closedir(dirp) * * return names # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_names); __pyx_r = __pyx_v_names; goto __pyx_L0; /* "pyfuse3.pyx":513 * * * def listdir(path): # <<<<<<<<<<<<<< * '''Like `os.listdir`, but releases the GIL. * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.listdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_path_b); __Pyx_XDECREF(__pyx_v_names); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":562 * * * def syncfs(path): # <<<<<<<<<<<<<< * '''Sync filesystem mounted at *path* * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_98syncfs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_97syncfs, "syncfs(path)\nSync filesystem mounted at *path*\n\n This is a Python interface to the syncfs(2) system call. There is no\n particular relation to libfuse, it is provided by pyfuse3 as a convience.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_98syncfs = {"syncfs", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_98syncfs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_97syncfs}; static PyObject *__pyx_pw_7pyfuse3_98syncfs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("syncfs (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 562, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "syncfs") < 0)) __PYX_ERR(3, 562, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_path = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("syncfs", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 562, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.syncfs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_97syncfs(__pyx_self, __pyx_v_path); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_97syncfs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) { int __pyx_v_ret; PyObject *__pyx_v_fd = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_t_7; int __pyx_t_8; char const *__pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; int __pyx_t_16; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("syncfs", 0); /* "pyfuse3.pyx":571 * cdef int ret * * fd = os.open(path, flags=os.O_DIRECTORY) # <<<<<<<<<<<<<< * try: * ret = libc_extra.syncfs(fd) */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_open); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_path); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_O_DIRECTORY); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_flags, __pyx_t_5) < 0) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_fd = __pyx_t_5; __pyx_t_5 = 0; /* "pyfuse3.pyx":572 * * fd = os.open(path, flags=os.O_DIRECTORY) * try: # <<<<<<<<<<<<<< * ret = libc_extra.syncfs(fd) * */ /*try:*/ { /* "pyfuse3.pyx":573 * fd = os.open(path, flags=os.O_DIRECTORY) * try: * ret = libc_extra.syncfs(fd) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_fd); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 573, __pyx_L4_error) __pyx_v_ret = syncfs(__pyx_t_6); /* "pyfuse3.pyx":575 * ret = libc_extra.syncfs(fd) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * finally: */ __pyx_t_7 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_7)) { /* "pyfuse3.pyx":576 * * if ret != 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * finally: * os.close(fd) */ __pyx_t_5 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 576, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 576, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 576, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_path); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 576, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 576, __pyx_L4_error) /* "pyfuse3.pyx":575 * ret = libc_extra.syncfs(fd) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * finally: */ } } /* "pyfuse3.pyx":578 * raise OSError(errno.errno, strerror(errno.errno), path) * finally: * os.close(fd) # <<<<<<<<<<<<<< * * */ /*finally:*/ { /*normal exit:*/{ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_close); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_fd}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L5; } __pyx_L4_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __pyx_t_6 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; { __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_os); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 578, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 578, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_16 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_16 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_fd}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_16, 1+__pyx_t_16); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 578, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; goto __pyx_L1_error; __pyx_L8_error:; if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; goto __pyx_L1_error; } __pyx_L5:; } /* "pyfuse3.pyx":562 * * * def syncfs(path): # <<<<<<<<<<<<<< * '''Sync filesystem mounted at *path* * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.syncfs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_fd); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":581 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_100setxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_99setxattr, "setxattr(path, name, bytes value, namespace=u'user')\nSet extended attribute\n\n *path* and *name* have to be of type `str`. In Python 3.x, they may\n contain surrogates. *value* has to be of type `bytes`.\n\n Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to\n select the namespace for the extended attribute. For other platforms, this\n parameter is ignored.\n\n In contrast to the `os.setxattr` function from the standard library, the\n method provided by pyfuse3 is also available for non-Linux systems.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_100setxattr = {"setxattr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_100setxattr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_99setxattr}; static PyObject *__pyx_pw_7pyfuse3_100setxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_value = 0; PyObject *__pyx_v_namespace = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("setxattr (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,&__pyx_n_s_name,&__pyx_n_s_value,&__pyx_n_s_namespace,0}; PyObject* values[4] = {0,0,0,0}; values[3] = ((PyObject *)((PyObject*)__pyx_n_u_user)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 581, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 581, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, 1); __PYX_ERR(3, 581, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 581, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, 2); __PYX_ERR(3, 581, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_namespace); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 581, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "setxattr") < 0)) __PYX_ERR(3, 581, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_path = values[0]; __pyx_v_name = values[1]; __pyx_v_value = ((PyObject*)values[2]); __pyx_v_namespace = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 581, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), (&PyBytes_Type), 1, "value", 1))) __PYX_ERR(3, 581, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_99setxattr(__pyx_self, __pyx_v_path, __pyx_v_name, __pyx_v_value, __pyx_v_namespace); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_99setxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_namespace) { int __pyx_v_ret; Py_ssize_t __pyx_v_len_; char *__pyx_v_cvalue; char *__pyx_v_cpath; char *__pyx_v_cname; int __pyx_v_cnamespace; PyObject *__pyx_v_path_b = NULL; PyObject *__pyx_v_name_b = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; char *__pyx_t_6; PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("setxattr", 0); /* "pyfuse3.pyx":595 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ __pyx_t_1 = PyUnicode_Check(__pyx_v_path); __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":596 * * if not isinstance(path, str): * raise TypeError('*path* argument must be of type str') # <<<<<<<<<<<<<< * * if not isinstance(name, str): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 596, __pyx_L1_error) /* "pyfuse3.pyx":595 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ } /* "pyfuse3.pyx":598 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ __pyx_t_2 = PyUnicode_Check(__pyx_v_name); __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { /* "pyfuse3.pyx":599 * * if not isinstance(name, str): * raise TypeError('*name* argument must be of type str') # <<<<<<<<<<<<<< * * if namespace not in ('system', 'user'): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 599, __pyx_L1_error) /* "pyfuse3.pyx":598 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ } /* "pyfuse3.pyx":601 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ __Pyx_INCREF(__pyx_v_namespace); __pyx_t_3 = __pyx_v_namespace; __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_system, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 601, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_user, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 601, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L6_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":603 * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) # <<<<<<<<<<<<<< * * cdef int ret */ __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_v_namespace); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pyfuse3.pyx":602 * * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' # <<<<<<<<<<<<<< * % namespace) * */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(3, 602, __pyx_L1_error) /* "pyfuse3.pyx":601 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ } /* "pyfuse3.pyx":612 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_namespace, __pyx_n_u_system, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 612, __pyx_L1_error) if (__pyx_t_2) { /* "pyfuse3.pyx":613 * * if namespace == 'system': * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM # <<<<<<<<<<<<<< * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER */ __pyx_v_cnamespace = EXTATTR_NAMESPACE_SYSTEM; /* "pyfuse3.pyx":612 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ goto __pyx_L8; } /* "pyfuse3.pyx":615 * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER # <<<<<<<<<<<<<< * * path_b = str2bytes(path) */ /*else*/ { __pyx_v_cnamespace = EXTATTR_NAMESPACE_USER; } __pyx_L8:; /* "pyfuse3.pyx":617 * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER * * path_b = str2bytes(path) # <<<<<<<<<<<<<< * name_b = str2bytes(name) * PyBytes_AsStringAndSize(value, &cvalue, &len_) */ __pyx_t_4 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_path_b = __pyx_t_4; __pyx_t_4 = 0; /* "pyfuse3.pyx":618 * * path_b = str2bytes(path) * name_b = str2bytes(name) # <<<<<<<<<<<<<< * PyBytes_AsStringAndSize(value, &cvalue, &len_) * cpath = path_b */ __pyx_t_4 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_name_b = __pyx_t_4; __pyx_t_4 = 0; /* "pyfuse3.pyx":619 * path_b = str2bytes(path) * name_b = str2bytes(name) * PyBytes_AsStringAndSize(value, &cvalue, &len_) # <<<<<<<<<<<<<< * cpath = path_b * cname = name_b */ __pyx_t_5 = PyBytes_AsStringAndSize(__pyx_v_value, (&__pyx_v_cvalue), (&__pyx_v_len_)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(3, 619, __pyx_L1_error) /* "pyfuse3.pyx":620 * name_b = str2bytes(name) * PyBytes_AsStringAndSize(value, &cvalue, &len_) * cpath = path_b # <<<<<<<<<<<<<< * cname = name_b * */ __pyx_t_6 = __Pyx_PyObject_AsWritableString(__pyx_v_path_b); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(3, 620, __pyx_L1_error) __pyx_v_cpath = ((char *)__pyx_t_6); /* "pyfuse3.pyx":621 * PyBytes_AsStringAndSize(value, &cvalue, &len_) * cpath = path_b * cname = name_b # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_6 = __Pyx_PyObject_AsWritableString(__pyx_v_name_b); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(3, 621, __pyx_L1_error) __pyx_v_cname = ((char *)__pyx_t_6); /* "pyfuse3.pyx":623 * cname = name_b * * with nogil: # <<<<<<<<<<<<<< * # len_ is guaranteed positive * ret = libc_extra.setxattr_p( */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":625 * with nogil: * # len_ is guaranteed positive * ret = libc_extra.setxattr_p( # <<<<<<<<<<<<<< * cpath, cname, cvalue, len_, cnamespace) * */ __pyx_v_ret = setxattr_p(__pyx_v_cpath, __pyx_v_cname, __pyx_v_cvalue, ((size_t)__pyx_v_len_), __pyx_v_cnamespace); } /* "pyfuse3.pyx":623 * cname = name_b * * with nogil: # <<<<<<<<<<<<<< * # len_ is guaranteed positive * ret = libc_extra.setxattr_p( */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L11; } __pyx_L11:; } } /* "pyfuse3.pyx":628 * cpath, cname, cvalue, len_, cnamespace) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ __pyx_t_2 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":629 * * if ret != 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_path); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 629, __pyx_L1_error) /* "pyfuse3.pyx":628 * cpath, cname, cvalue, len_, cnamespace) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ } /* "pyfuse3.pyx":581 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyfuse3.setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_path_b); __Pyx_XDECREF(__pyx_v_name_b); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":632 * * * def getxattr(path, name, size_t size_guess=128, namespace='user'): # <<<<<<<<<<<<<< * '''Get extended attribute * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_102getxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_101getxattr, "getxattr(path, name, size_t size_guess=128, namespace=u'user')\nGet extended attribute\n\n *path* and *name* have to be of type `str`. In Python 3.x, they may\n contain surrogates. Returns a value of type `bytes`.\n\n If the caller knows the approximate size of the attribute value,\n it should be supplied in *size_guess*. If the guess turns out\n to be wrong, the system call has to be carried out three times\n (the first call will fail, the second determines the size and\n the third finally gets the value).\n\n Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to\n select the namespace for the extended attribute. For other platforms, this\n parameter is ignored.\n\n In contrast to the `os.getxattr` function from the standard library, the\n method provided by pyfuse3 is also available for non-Linux systems.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_102getxattr = {"getxattr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_102getxattr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_101getxattr}; static PyObject *__pyx_pw_7pyfuse3_102getxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; PyObject *__pyx_v_name = 0; size_t __pyx_v_size_guess; PyObject *__pyx_v_namespace = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("getxattr (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,&__pyx_n_s_name,&__pyx_n_s_size_guess,&__pyx_n_s_namespace,0}; PyObject* values[4] = {0,0,0,0}; values[3] = ((PyObject *)((PyObject*)__pyx_n_u_user)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 632, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 632, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("getxattr", 0, 2, 4, 1); __PYX_ERR(3, 632, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_size_guess); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 632, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_namespace); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 632, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "getxattr") < 0)) __PYX_ERR(3, 632, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_path = values[0]; __pyx_v_name = values[1]; if (values[2]) { __pyx_v_size_guess = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_size_guess == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 632, __pyx_L3_error) } else { __pyx_v_size_guess = ((size_t)((size_t)0x80)); } __pyx_v_namespace = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("getxattr", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 632, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_101getxattr(__pyx_self, __pyx_v_path, __pyx_v_name, __pyx_v_size_guess, __pyx_v_namespace); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_101getxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, size_t __pyx_v_size_guess, PyObject *__pyx_v_namespace) { Py_ssize_t __pyx_v_ret; char *__pyx_v_buf; char *__pyx_v_cpath; char *__pyx_v_cname; size_t __pyx_v_bufsize; int __pyx_v_cnamespace; PyObject *__pyx_v_path_b = NULL; PyObject *__pyx_v_name_b = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; char *__pyx_t_5; PyObject *__pyx_t_6; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("getxattr", 0); /* "pyfuse3.pyx":652 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ __pyx_t_1 = PyUnicode_Check(__pyx_v_path); __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":653 * * if not isinstance(path, str): * raise TypeError('*path* argument must be of type str') # <<<<<<<<<<<<<< * * if not isinstance(name, str): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 653, __pyx_L1_error) /* "pyfuse3.pyx":652 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ } /* "pyfuse3.pyx":655 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ __pyx_t_2 = PyUnicode_Check(__pyx_v_name); __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { /* "pyfuse3.pyx":656 * * if not isinstance(name, str): * raise TypeError('*name* argument must be of type str') # <<<<<<<<<<<<<< * * if namespace not in ('system', 'user'): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 656, __pyx_L1_error) /* "pyfuse3.pyx":655 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ } /* "pyfuse3.pyx":658 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ __Pyx_INCREF(__pyx_v_namespace); __pyx_t_3 = __pyx_v_namespace; __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_system, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 658, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_user, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 658, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L6_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":660 * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) # <<<<<<<<<<<<<< * * cdef ssize_t ret */ __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_v_namespace); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pyfuse3.pyx":659 * * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' # <<<<<<<<<<<<<< * % namespace) * */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(3, 659, __pyx_L1_error) /* "pyfuse3.pyx":658 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ } /* "pyfuse3.pyx":669 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_namespace, __pyx_n_u_system, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 669, __pyx_L1_error) if (__pyx_t_2) { /* "pyfuse3.pyx":670 * * if namespace == 'system': * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM # <<<<<<<<<<<<<< * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER */ __pyx_v_cnamespace = EXTATTR_NAMESPACE_SYSTEM; /* "pyfuse3.pyx":669 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ goto __pyx_L8; } /* "pyfuse3.pyx":672 * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER # <<<<<<<<<<<<<< * * path_b = str2bytes(path) */ /*else*/ { __pyx_v_cnamespace = EXTATTR_NAMESPACE_USER; } __pyx_L8:; /* "pyfuse3.pyx":674 * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER * * path_b = str2bytes(path) # <<<<<<<<<<<<<< * name_b = str2bytes(name) * cpath = path_b */ __pyx_t_4 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_path_b = __pyx_t_4; __pyx_t_4 = 0; /* "pyfuse3.pyx":675 * * path_b = str2bytes(path) * name_b = str2bytes(name) # <<<<<<<<<<<<<< * cpath = path_b * cname = name_b */ __pyx_t_4 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_name_b = __pyx_t_4; __pyx_t_4 = 0; /* "pyfuse3.pyx":676 * path_b = str2bytes(path) * name_b = str2bytes(name) * cpath = path_b # <<<<<<<<<<<<<< * cname = name_b * */ __pyx_t_5 = __Pyx_PyObject_AsWritableString(__pyx_v_path_b); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(3, 676, __pyx_L1_error) __pyx_v_cpath = ((char *)__pyx_t_5); /* "pyfuse3.pyx":677 * name_b = str2bytes(name) * cpath = path_b * cname = name_b # <<<<<<<<<<<<<< * * bufsize = size_guess */ __pyx_t_5 = __Pyx_PyObject_AsWritableString(__pyx_v_name_b); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(3, 677, __pyx_L1_error) __pyx_v_cname = ((char *)__pyx_t_5); /* "pyfuse3.pyx":679 * cname = name_b * * bufsize = size_guess # <<<<<<<<<<<<<< * buf = stdlib.malloc(bufsize * sizeof(char)) * */ __pyx_v_bufsize = __pyx_v_size_guess; /* "pyfuse3.pyx":680 * * bufsize = size_guess * buf = stdlib.malloc(bufsize * sizeof(char)) # <<<<<<<<<<<<<< * * if buf is NULL: */ __pyx_v_buf = ((char *)malloc((__pyx_v_bufsize * (sizeof(char))))); /* "pyfuse3.pyx":682 * buf = stdlib.malloc(bufsize * sizeof(char)) * * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_2 = (__pyx_v_buf == NULL); if (__pyx_t_2) { /* "pyfuse3.pyx":683 * * if buf is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * try: */ __pyx_t_6 = PyErr_NoMemory(); if (unlikely(__pyx_t_6 == ((PyObject *)NULL))) __PYX_ERR(3, 683, __pyx_L1_error) /* "pyfuse3.pyx":682 * buf = stdlib.malloc(bufsize * sizeof(char)) * * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "pyfuse3.pyx":685 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) */ /*try:*/ { /* "pyfuse3.pyx":686 * * try: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":687 * try: * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) # <<<<<<<<<<<<<< * * if ret < 0 and errno.errno == errno.ERANGE: */ __pyx_v_ret = getxattr_p(__pyx_v_cpath, __pyx_v_cname, __pyx_v_buf, __pyx_v_bufsize, __pyx_v_cnamespace); } /* "pyfuse3.pyx":686 * * try: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L15; } __pyx_L15:; } } /* "pyfuse3.pyx":689 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0 and errno.errno == errno.ERANGE: # <<<<<<<<<<<<<< * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) */ __pyx_t_1 = (__pyx_v_ret < 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L17_bool_binop_done; } __pyx_t_1 = (errno == ERANGE); __pyx_t_2 = __pyx_t_1; __pyx_L17_bool_binop_done:; if (__pyx_t_2) { /* "pyfuse3.pyx":690 * * if ret < 0 and errno.errno == errno.ERANGE: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":691 * if ret < 0 and errno.errno == errno.ERANGE: * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) # <<<<<<<<<<<<<< * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) */ __pyx_v_ret = getxattr_p(__pyx_v_cpath, __pyx_v_cname, NULL, 0, __pyx_v_cnamespace); } /* "pyfuse3.pyx":690 * * if ret < 0 and errno.errno == errno.ERANGE: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L21; } __pyx_L21:; } } /* "pyfuse3.pyx":692 * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret */ __pyx_t_2 = (__pyx_v_ret < 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":693 * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * bufsize = ret * stdlib.free(buf) */ __pyx_t_4 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 693, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 693, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 693, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_path); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 693, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 693, __pyx_L11_error) /* "pyfuse3.pyx":692 * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret */ } /* "pyfuse3.pyx":694 * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret # <<<<<<<<<<<<<< * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) */ __pyx_v_bufsize = ((size_t)__pyx_v_ret); /* "pyfuse3.pyx":695 * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret * stdlib.free(buf) # <<<<<<<<<<<<<< * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: */ free(__pyx_v_buf); /* "pyfuse3.pyx":696 * bufsize = ret * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) # <<<<<<<<<<<<<< * if buf is NULL: * cpython.exc.PyErr_NoMemory() */ __pyx_v_buf = ((char *)malloc((__pyx_v_bufsize * (sizeof(char))))); /* "pyfuse3.pyx":697 * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_2 = (__pyx_v_buf == NULL); if (__pyx_t_2) { /* "pyfuse3.pyx":698 * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_6 = PyErr_NoMemory(); if (unlikely(__pyx_t_6 == ((PyObject *)NULL))) __PYX_ERR(3, 698, __pyx_L11_error) /* "pyfuse3.pyx":697 * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "pyfuse3.pyx":700 * cpython.exc.PyErr_NoMemory() * * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":701 * * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) # <<<<<<<<<<<<<< * * if ret < 0: */ __pyx_v_ret = getxattr_p(__pyx_v_cpath, __pyx_v_cname, __pyx_v_buf, __pyx_v_bufsize, __pyx_v_cnamespace); } /* "pyfuse3.pyx":700 * cpython.exc.PyErr_NoMemory() * * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L26; } __pyx_L26:; } } /* "pyfuse3.pyx":689 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0 and errno.errno == errno.ERANGE: # <<<<<<<<<<<<<< * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) */ } /* "pyfuse3.pyx":703 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ __pyx_t_2 = (__pyx_v_ret < 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":704 * * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * * return PyBytes_FromStringAndSize(buf, ret) */ __pyx_t_3 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 704, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 704, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 704, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7); __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_path); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 704, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(3, 704, __pyx_L11_error) /* "pyfuse3.pyx":703 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ } /* "pyfuse3.pyx":706 * raise OSError(errno.errno, strerror(errno.errno), path) * * return PyBytes_FromStringAndSize(buf, ret) # <<<<<<<<<<<<<< * * finally: */ __Pyx_XDECREF(__pyx_r); __pyx_t_7 = PyBytes_FromStringAndSize(__pyx_v_buf, __pyx_v_ret); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 706, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_7); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L10_return; } /* "pyfuse3.pyx":709 * * finally: * stdlib.free(buf) # <<<<<<<<<<<<<< * * */ /*finally:*/ { __pyx_L11_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { free(__pyx_v_buf); } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L1_error; } __pyx_L10_return: { __pyx_t_16 = __pyx_r; __pyx_r = 0; free(__pyx_v_buf); __pyx_r = __pyx_t_16; __pyx_t_16 = 0; goto __pyx_L0; } } /* "pyfuse3.pyx":632 * * * def getxattr(path, name, size_t size_guess=128, namespace='user'): # <<<<<<<<<<<<<< * '''Get extended attribute * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyfuse3.getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_path_b); __Pyx_XDECREF(__pyx_v_name_b); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":714 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ static PyObject *__pyx_pf_7pyfuse3_128__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_options); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_options); PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_options); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_104init(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_103init, "init(ops, mountpoint, options=default_options)\nInitialize and mount FUSE file system\n\n *ops* has to be an instance of the `Operations` class (or another\n class defining the same methods).\n\n *args* has to be a set of strings. `default_options` provides some\n reasonable defaults. It is recommended to use these options as a basis and\n add or remove options as necessary. For example::\n\n my_opts = set(pyfuse3.default_options)\n my_opts.add('allow_other')\n my_opts.discard('default_permissions')\n pyfuse3.init(ops, mountpoint, my_opts)\n\n Valid options are listed under ``struct\n fuse_opt fuse_mount_opts[]``\n (in `mount.c `_)\n and ``struct fuse_opt fuse_ll_opts[]``\n (in `fuse_lowlevel_c `_).\n "); static PyMethodDef __pyx_mdef_7pyfuse3_104init = {"init", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_104init, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_103init}; static PyObject *__pyx_pw_7pyfuse3_104init(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_ops = 0; PyObject *__pyx_v_mountpoint = 0; PyObject *__pyx_v_options = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("init (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ops,&__pyx_n_s_mountpoint,&__pyx_n_s_options,0}; PyObject* values[3] = {0,0,0}; __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self); values[2] = __pyx_dynamic_args->__pyx_arg_options; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ops)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 714, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mountpoint)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 714, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("init", 0, 2, 3, 1); __PYX_ERR(3, 714, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_options); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 714, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "init") < 0)) __PYX_ERR(3, 714, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_ops = values[0]; __pyx_v_mountpoint = values[1]; __pyx_v_options = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("init", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 714, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.init", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_103init(__pyx_self, __pyx_v_ops, __pyx_v_mountpoint, __pyx_v_options); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_103init(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ops, PyObject *__pyx_v_mountpoint, PyObject *__pyx_v_options) { struct fuse_args __pyx_v_f_args; int __pyx_v_res; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; char *__pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("init", 0); /* "pyfuse3.pyx":736 * ''' * * log.debug('Initializing pyfuse3') # <<<<<<<<<<<<<< * cdef fuse_args f_args * cdef int res */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u_Initializing_pyfuse3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":740 * cdef int res * * if not isinstance(mountpoint, str): # <<<<<<<<<<<<<< * raise TypeError('*mountpoint_* argument must be of type str') * */ __pyx_t_5 = PyUnicode_Check(__pyx_v_mountpoint); __pyx_t_6 = (!__pyx_t_5); if (unlikely(__pyx_t_6)) { /* "pyfuse3.pyx":741 * * if not isinstance(mountpoint, str): * raise TypeError('*mountpoint_* argument must be of type str') # <<<<<<<<<<<<<< * * global operations */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(3, 741, __pyx_L1_error) /* "pyfuse3.pyx":740 * cdef int res * * if not isinstance(mountpoint, str): # <<<<<<<<<<<<<< * raise TypeError('*mountpoint_* argument must be of type str') * */ } /* "pyfuse3.pyx":750 * global worker_data * * worker_data = _WorkerData() # <<<<<<<<<<<<<< * mountpoint_b = str2bytes(os.path.abspath(mountpoint)) * operations = ops */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7pyfuse3__WorkerData)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF((PyObject *)__pyx_v_7pyfuse3_worker_data); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_worker_data, ((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_t_1)); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":751 * * worker_data = _WorkerData() * mountpoint_b = str2bytes(os.path.abspath(mountpoint)) # <<<<<<<<<<<<<< * operations = ops * */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_abspath); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_mountpoint}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_v_7pyfuse3_mountpoint_b); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_mountpoint_b, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":752 * worker_data = _WorkerData() * mountpoint_b = str2bytes(os.path.abspath(mountpoint)) * operations = ops # <<<<<<<<<<<<<< * * make_fuse_args(options, &f_args) */ __Pyx_INCREF(__pyx_v_ops); __Pyx_XGOTREF(__pyx_v_7pyfuse3_operations); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_operations, __pyx_v_ops); __Pyx_GIVEREF(__pyx_v_ops); /* "pyfuse3.pyx":754 * operations = ops * * make_fuse_args(options, &f_args) # <<<<<<<<<<<<<< * * log.debug('Calling fuse_session_new') */ __pyx_t_3 = __pyx_f_7pyfuse3_make_fuse_args(__pyx_v_options, (&__pyx_v_f_args)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":756 * make_fuse_args(options, &f_args) * * log.debug('Calling fuse_session_new') # <<<<<<<<<<<<<< * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_kp_u_Calling_fuse_session_new}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":757 * * log.debug('Calling fuse_session_new') * init_fuse_ops() # <<<<<<<<<<<<<< * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: */ __pyx_f_7pyfuse3_init_fuse_ops(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 757, __pyx_L1_error) /* "pyfuse3.pyx":758 * log.debug('Calling fuse_session_new') * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) # <<<<<<<<<<<<<< * if not session: * raise RuntimeError("fuse_session_new() failed") */ __pyx_v_7pyfuse3_session = fuse_session_new((&__pyx_v_f_args), (&__pyx_v_7pyfuse3_fuse_ops), (sizeof(__pyx_v_7pyfuse3_fuse_ops)), NULL); /* "pyfuse3.pyx":759 * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: # <<<<<<<<<<<<<< * raise RuntimeError("fuse_session_new() failed") * */ __pyx_t_6 = (!(__pyx_v_7pyfuse3_session != 0)); if (unlikely(__pyx_t_6)) { /* "pyfuse3.pyx":760 * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: * raise RuntimeError("fuse_session_new() failed") # <<<<<<<<<<<<<< * * log.debug('Calling fuse_session_mount') */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 760, __pyx_L1_error) /* "pyfuse3.pyx":759 * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: # <<<<<<<<<<<<<< * raise RuntimeError("fuse_session_new() failed") * */ } /* "pyfuse3.pyx":762 * raise RuntimeError("fuse_session_new() failed") * * log.debug('Calling fuse_session_mount') # <<<<<<<<<<<<<< * res = fuse_session_mount(session, mountpoint_b) * if res != 0: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u_Calling_fuse_session_mount}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":763 * * log.debug('Calling fuse_session_mount') * res = fuse_session_mount(session, mountpoint_b) # <<<<<<<<<<<<<< * if res != 0: * raise RuntimeError('fuse_session_mount failed') */ __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_7pyfuse3_mountpoint_b); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(3, 763, __pyx_L1_error) __pyx_v_res = fuse_session_mount(__pyx_v_7pyfuse3_session, ((char *)__pyx_t_7)); /* "pyfuse3.pyx":764 * log.debug('Calling fuse_session_mount') * res = fuse_session_mount(session, mountpoint_b) * if res != 0: # <<<<<<<<<<<<<< * raise RuntimeError('fuse_session_mount failed') * */ __pyx_t_6 = (__pyx_v_res != 0); if (unlikely(__pyx_t_6)) { /* "pyfuse3.pyx":765 * res = fuse_session_mount(session, mountpoint_b) * if res != 0: * raise RuntimeError('fuse_session_mount failed') # <<<<<<<<<<<<<< * * session_fd = fuse_session_fd(session) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 765, __pyx_L1_error) /* "pyfuse3.pyx":764 * log.debug('Calling fuse_session_mount') * res = fuse_session_mount(session, mountpoint_b) * if res != 0: # <<<<<<<<<<<<<< * raise RuntimeError('fuse_session_mount failed') * */ } /* "pyfuse3.pyx":767 * raise RuntimeError('fuse_session_mount failed') * * session_fd = fuse_session_fd(session) # <<<<<<<<<<<<<< * * */ __pyx_v_7pyfuse3_session_fd = fuse_session_fd(__pyx_v_7pyfuse3_session); /* "pyfuse3.pyx":714 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.init", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_107generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pyfuse3.pyx":770 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_106main(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_105main, "main(int min_tasks=1, int max_tasks=99)\nRun FUSE main loop"); static PyMethodDef __pyx_mdef_7pyfuse3_106main = {"main", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_106main, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_105main}; static PyObject *__pyx_pw_7pyfuse3_106main(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { int __pyx_v_min_tasks; int __pyx_v_max_tasks; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("main (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_min_tasks,&__pyx_n_s_max_tasks,0}; PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_min_tasks); if (value) { values[0] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 770, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_max_tasks); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 770, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "main") < 0)) __PYX_ERR(3, 770, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_min_tasks = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_min_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 771, __pyx_L3_error) } else { __pyx_v_min_tasks = ((int)((int)1)); } if (values[1]) { __pyx_v_max_tasks = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_max_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 771, __pyx_L3_error) } else { __pyx_v_max_tasks = ((int)((int)99)); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("main", 0, 0, 2, __pyx_nargs); __PYX_ERR(3, 770, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.main", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_105main(__pyx_self, __pyx_v_min_tasks, __pyx_v_max_tasks); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_105main(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_min_tasks, int __pyx_v_max_tasks) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("main", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_31_main(__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 770, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_min_tasks = __pyx_v_min_tasks; __pyx_cur_scope->__pyx_v_max_tasks = __pyx_v_max_tasks; { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_107generator31, __pyx_codeobj__43, (PyObject *) __pyx_cur_scope, __pyx_n_s_main, __pyx_n_s_main, __pyx_n_s_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 770, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.main", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_107generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; int __pyx_t_13; int __pyx_t_14; char const *__pyx_t_15; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("main", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L9_resume_from_await; case 2: goto __pyx_L22_resume_from_await; case 3: goto __pyx_L23_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 770, __pyx_L1_error) /* "pyfuse3.pyx":774 * '''Run FUSE main loop''' * * if session == NULL: # <<<<<<<<<<<<<< * raise RuntimeError('Need to call init() before main()') * */ __pyx_t_1 = (__pyx_v_7pyfuse3_session == NULL); if (unlikely(__pyx_t_1)) { /* "pyfuse3.pyx":775 * * if session == NULL: * raise RuntimeError('Need to call init() before main()') # <<<<<<<<<<<<<< * * global trio_token */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(3, 775, __pyx_L1_error) /* "pyfuse3.pyx":774 * '''Run FUSE main loop''' * * if session == NULL: # <<<<<<<<<<<<<< * raise RuntimeError('Need to call init() before main()') * */ } /* "pyfuse3.pyx":778 * * global trio_token * trio_token = trio.lowlevel.current_trio_token() # <<<<<<<<<<<<<< * * try: */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_trio); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_lowlevel); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_current_trio_token); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } if (PyDict_SetItem(__pyx_d, __pyx_n_s_trio_token, __pyx_t_2) < 0) __PYX_ERR(3, 778, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":780 * trio_token = trio.lowlevel.current_trio_token() * * try: # <<<<<<<<<<<<<< * async with trio.open_nursery() as nursery: * worker_data.task_count = 1 */ /*try:*/ { /* "pyfuse3.pyx":781 * * try: * async with trio.open_nursery() as nursery: # <<<<<<<<<<<<<< * worker_data.task_count = 1 * worker_data.task_serial = 1 */ /*with:*/ { __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_trio); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 781, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_open_nursery); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 781, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 781, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_aexit); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 781, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_aenter); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 781, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 781, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L9_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 781, __pyx_L8_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else { __pyx_t_4 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(3, 781, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_nursery = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3.pyx":782 * try: * async with trio.open_nursery() as nursery: * worker_data.task_count = 1 # <<<<<<<<<<<<<< * worker_data.task_serial = 1 * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, */ __pyx_v_7pyfuse3_worker_data->task_count = 1; /* "pyfuse3.pyx":783 * async with trio.open_nursery() as nursery: * worker_data.task_count = 1 * worker_data.task_serial = 1 # <<<<<<<<<<<<<< * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) */ __pyx_v_7pyfuse3_worker_data->task_serial = 1; /* "pyfuse3.pyx":784 * worker_data.task_count = 1 * worker_data.task_serial = 1 * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, # <<<<<<<<<<<<<< * name=worker_data.get_name()) * finally: */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_nursery, __pyx_n_s_start_soon); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 784, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_session_loop); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 784, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_min_tasks); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 784, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_max_tasks); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 784, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 784, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_2); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_nursery); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nursery); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_cur_scope->__pyx_v_nursery); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_7); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_7 = 0; /* "pyfuse3.pyx":785 * worker_data.task_serial = 1 * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) # <<<<<<<<<<<<<< * finally: * trio_token = None */ __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 785, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = ((struct __pyx_vtabstruct_7pyfuse3__WorkerData *)__pyx_v_7pyfuse3_worker_data->__pyx_vtab)->get_name(__pyx_v_7pyfuse3_worker_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 785, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_name, __pyx_t_4) < 0) __PYX_ERR(3, 785, __pyx_L13_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pyfuse3.pyx":784 * worker_data.task_count = 1 * worker_data.task_serial = 1 * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, # <<<<<<<<<<<<<< * name=worker_data.get_name()) * finally: */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 784, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pyfuse3.pyx":781 * * try: * async with trio.open_nursery() as nursery: # <<<<<<<<<<<<<< * worker_data.task_count = 1 * worker_data.task_serial = 1 */ } __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L18_try_end; __pyx_L13_error:; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /*except:*/ { __Pyx_AddTraceback("pyfuse3.main", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_11) < 0) __PYX_ERR(3, 781, __pyx_L15_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_11); __pyx_t_3 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_7, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 781, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 781, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_4 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_5 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_6 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_7 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_SwapException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L22_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 781, __pyx_L15_except_error) __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_3 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(3, 781, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_t_12 = __pyx_t_3; __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_1 < 0) __PYX_ERR(3, 781, __pyx_L15_except_error) __pyx_t_13 = (!__pyx_t_1); if (unlikely(__pyx_t_13)) { __Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_7, __pyx_t_11); __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_11 = 0; __PYX_ERR(3, 781, __pyx_L15_except_error) } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L14_exception_handled; } __pyx_L15_except_error:; __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); goto __pyx_L6_error; __pyx_L14_exception_handled:; __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); __pyx_L18_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_6) { __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__34, NULL); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 781, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_10); __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_0 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_1 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L23_resume_from_await:; __pyx_t_6 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_10 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 781, __pyx_L6_error) __pyx_t_11 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_11); } else { __pyx_t_11 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_11) < 0) __PYX_ERR(3, 781, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_11); } __pyx_t_10 = __pyx_t_11; __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } goto __pyx_L12; } __pyx_L12:; } goto __pyx_L24; __pyx_L8_error:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L6_error; __pyx_L24:; } } /* "pyfuse3.pyx":787 * name=worker_data.get_name()) * finally: * trio_token = None # <<<<<<<<<<<<<< * if _notify_queue is not None: * _notify_queue.put(None) */ /*finally:*/ { /*normal exit:*/{ if (PyDict_SetItem(__pyx_d, __pyx_n_s_trio_token, Py_None) < 0) __PYX_ERR(3, 787, __pyx_L1_error) /* "pyfuse3.pyx":788 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ __pyx_t_13 = (__pyx_v_7pyfuse3__notify_queue != Py_None); if (__pyx_t_13) { /* "pyfuse3.pyx":789 * trio_token = None * if _notify_queue is not None: * _notify_queue.put(None) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3__notify_queue, __pyx_n_s_put); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, Py_None}; __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* "pyfuse3.pyx":788 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ } goto __pyx_L7; } __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_6 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_12, &__pyx_t_16); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_10, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_10, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_5 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename; { /* "pyfuse3.pyx":787 * name=worker_data.get_name()) * finally: * trio_token = None # <<<<<<<<<<<<<< * if _notify_queue is not None: * _notify_queue.put(None) */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_trio_token, Py_None) < 0) __PYX_ERR(3, 787, __pyx_L27_error) /* "pyfuse3.pyx":788 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ __pyx_t_13 = (__pyx_v_7pyfuse3__notify_queue != Py_None); if (__pyx_t_13) { /* "pyfuse3.pyx":789 * trio_token = None * if _notify_queue is not None: * _notify_queue.put(None) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3__notify_queue, __pyx_n_s_put); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 789, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_17 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, Py_None}; __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_17, 1+__pyx_t_17); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 789, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* "pyfuse3.pyx":788 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ } } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_12, __pyx_t_16); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_10, __pyx_t_9); __pyx_t_6 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15; goto __pyx_L1_error; __pyx_L27_error:; if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_12, __pyx_t_16); } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_16 = 0; goto __pyx_L1_error; } __pyx_L7:; } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "pyfuse3.pyx":770 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("main", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":792 * * * def terminate(): # <<<<<<<<<<<<<< * '''Terminate FUSE main loop. * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_109terminate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_108terminate, "terminate()\nTerminate FUSE main loop.\n\n This function gracefully terminates the FUSE main loop (resulting in the call to\n main() to return).\n\n When called by a thread different from the one that runs the main loop, the call must\n be wrapped with `trio.from_thread.run_sync`. The necessary *trio_token* argument can\n (for convience) be retrieved from the `trio_token` module attribute.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_109terminate = {"terminate", (PyCFunction)__pyx_pw_7pyfuse3_109terminate, METH_NOARGS, __pyx_doc_7pyfuse3_108terminate}; static PyObject *__pyx_pw_7pyfuse3_109terminate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("terminate (wrapper)", 0); __pyx_r = __pyx_pf_7pyfuse3_108terminate(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_108terminate(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("terminate", 0); /* "pyfuse3.pyx":803 * ''' * * fuse_session_exit(session) # <<<<<<<<<<<<<< * trio.lowlevel.notify_closing(session_fd) * */ fuse_session_exit(__pyx_v_7pyfuse3_session); /* "pyfuse3.pyx":804 * * fuse_session_exit(session) * trio.lowlevel.notify_closing(session_fd) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_trio); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lowlevel); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_notify_closing); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_7pyfuse3_session_fd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":792 * * * def terminate(): # <<<<<<<<<<<<<< * '''Terminate FUSE main loop. * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.terminate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":807 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_111close(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_110close, "close(unmount=True)\nClean up and ensure filesystem is unmounted\n\n If *unmount* is False, only clean up operations are peformed, but the file\n system is not explicitly unmounted.\n\n Normally, the filesystem is unmounted by the user calling umount(8) or\n fusermount(1), which then terminates the FUSE main loop. However, the loop\n may also terminate as a result of an exception or a signal. In this case the\n filesystem remains mounted, but any attempt to access it will block (while\n the filesystem process is still running) or (after the filesystem process\n has terminated) return an error. If *unmount* is True, this function will\n ensure that the filesystem is properly unmounted.\n\n Note: if the connection to the kernel is terminated via the\n ``/sys/fs/fuse/connections/`` interface, this function will *not* unmount\n the filesystem even if *unmount* is True.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_111close = {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_111close, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_110close}; static PyObject *__pyx_pw_7pyfuse3_111close(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_unmount = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("close (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unmount,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)((PyObject *)Py_True)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_unmount); if (value) { values[0] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 807, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "close") < 0)) __PYX_ERR(3, 807, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_unmount = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("close", 0, 0, 1, __pyx_nargs); __PYX_ERR(3, 807, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.close", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_110close(__pyx_self, __pyx_v_unmount); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_110close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_unmount) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("close", 0); /* "pyfuse3.pyx":829 * global session * * if unmount: # <<<<<<<<<<<<<< * log.debug('Calling fuse_session_unmount') * fuse_session_unmount(session) */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_unmount); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 829, __pyx_L1_error) if (__pyx_t_1) { /* "pyfuse3.pyx":830 * * if unmount: * log.debug('Calling fuse_session_unmount') # <<<<<<<<<<<<<< * fuse_session_unmount(session) * */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u_Calling_fuse_session_unmount}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":831 * if unmount: * log.debug('Calling fuse_session_unmount') * fuse_session_unmount(session) # <<<<<<<<<<<<<< * * log.debug('Calling fuse_session_destroy') */ fuse_session_unmount(__pyx_v_7pyfuse3_session); /* "pyfuse3.pyx":829 * global session * * if unmount: # <<<<<<<<<<<<<< * log.debug('Calling fuse_session_unmount') * fuse_session_unmount(session) */ } /* "pyfuse3.pyx":833 * fuse_session_unmount(session) * * log.debug('Calling fuse_session_destroy') # <<<<<<<<<<<<<< * fuse_session_destroy(session) * */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_Calling_fuse_session_destroy}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":834 * * log.debug('Calling fuse_session_destroy') * fuse_session_destroy(session) # <<<<<<<<<<<<<< * * mountpoint_b = None */ fuse_session_destroy(__pyx_v_7pyfuse3_session); /* "pyfuse3.pyx":836 * fuse_session_destroy(session) * * mountpoint_b = None # <<<<<<<<<<<<<< * session = NULL * */ __Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7pyfuse3_mountpoint_b); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_mountpoint_b, Py_None); __Pyx_GIVEREF(Py_None); /* "pyfuse3.pyx":837 * * mountpoint_b = None * session = NULL # <<<<<<<<<<<<<< * * */ __pyx_v_7pyfuse3_session = NULL; /* "pyfuse3.pyx":807 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.close", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":840 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_113invalidate_inode(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_112invalidate_inode, "invalidate_inode(fuse_ino_t inode, attr_only=False)\nInvalidate cache for *inode*\n\n Instructs the FUSE kernel module to forget cached attributes and\n data (unless *attr_only* is True) for *inode*.\n\n **This operation may block** if writeback caching is active and there is\n dirty data for the inode that is to be invalidated. Unfortunately there is\n no way to return control to the event loop until writeback is complete\n (leading to a deadlock if the necessary write() requests cannot be processed\n by the filesystem). Unless writeback caching is disabled, this function\n should therefore be called from a separate thread.\n\n If the operation is not supported by the kernel, raises `OSError`\n with errno ENOSYS.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_113invalidate_inode = {"invalidate_inode", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_113invalidate_inode, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_112invalidate_inode}; static PyObject *__pyx_pw_7pyfuse3_113invalidate_inode(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { fuse_ino_t __pyx_v_inode; PyObject *__pyx_v_attr_only = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("invalidate_inode (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_inode,&__pyx_n_s_attr_only,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)((PyObject *)Py_False)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_inode)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 840, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_attr_only); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 840, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "invalidate_inode") < 0)) __PYX_ERR(3, 840, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_inode = __Pyx_PyInt_As_fuse_ino_t(values[0]); if (unlikely((__pyx_v_inode == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 840, __pyx_L3_error) __pyx_v_attr_only = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("invalidate_inode", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 840, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.invalidate_inode", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_112invalidate_inode(__pyx_self, __pyx_v_inode, __pyx_v_attr_only); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_112invalidate_inode(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode, PyObject *__pyx_v_attr_only) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("invalidate_inode", 0); /* "pyfuse3.pyx":858 * * cdef int ret * if attr_only: # <<<<<<<<<<<<<< * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attr_only); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 858, __pyx_L1_error) if (__pyx_t_1) { /* "pyfuse3.pyx":859 * cdef int ret * if attr_only: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":860 * if attr_only: * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_v_ret = fuse_lowlevel_notify_inval_inode(__pyx_v_7pyfuse3_session, __pyx_v_inode, -1L, 0); } /* "pyfuse3.pyx":859 * cdef int ret * if attr_only: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pyfuse3.pyx":858 * * cdef int ret * if attr_only: # <<<<<<<<<<<<<< * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) */ goto __pyx_L3; } /* "pyfuse3.pyx":862 * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":863 * else: * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_v_ret = fuse_lowlevel_notify_inval_inode(__pyx_v_7pyfuse3_session, __pyx_v_inode, 0, 0); } /* "pyfuse3.pyx":862 * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L9; } __pyx_L9:; } } } __pyx_L3:; /* "pyfuse3.pyx":865 * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) * */ __pyx_t_1 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_1)) { /* "pyfuse3.pyx":866 * * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Add(__pyx_kp_u_fuse_lowlevel_notify_inval_inode, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(3, 866, __pyx_L1_error) /* "pyfuse3.pyx":865 * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) * */ } /* "pyfuse3.pyx":840 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.invalidate_inode", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":869 * * * def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): # <<<<<<<<<<<<<< * '''Invalidate directory entry * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_115invalidate_entry(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_114invalidate_entry, "invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0)\nInvalidate directory entry\n\n Instructs the FUSE kernel module to forget about the directory entry *name*\n in the directory with inode *inode_p*.\n\n If the inode passed as *deleted* matches the inode that is currently\n associated with *name* by the kernel, any inotify watchers of this inode are\n informed that the entry has been deleted.\n\n If there is a pending filesystem operation that is related to the parent\n directory or directory entry, this function will block until that operation\n has completed. Therefore, to avoid a deadlock this function must not be\n called while handling a related request, nor while holding a lock that could\n be needed for handling such a request.\n\n As for kernel 4.18, a \"related operation\" is a `~Operations.lookup`,\n `~Operations.symlink`, `~Operations.mknod`, `~Operations.mkdir`,\n `~Operations.unlink`, `~Operations.rename`, `~Operations.link` or\n `~Operations.create` request for the parent, and a `~Operations.setattr`,\n `~Operations.unlink`, `~Operations.rmdir`, `~Operations.rename`,\n `~Operations.setxattr`, `~Operations.removexattr` or `~Operations.readdir`\n request for the inode itself.\n\n For technical reasons, this function can also not return control to the main\n event loop but will actually block. To return control to the event loop\n while this function is running, call it in a separate thread using\n `trio.run_sync_in_worker_thread\n `_.\n A less complicated alternative is to use the `invalidate_entry_async` function\n instead.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_115invalidate_entry = {"invalidate_entry", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_115invalidate_entry, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_114invalidate_entry}; static PyObject *__pyx_pw_7pyfuse3_115invalidate_entry(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { fuse_ino_t __pyx_v_inode_p; PyObject *__pyx_v_name = 0; fuse_ino_t __pyx_v_deleted; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("invalidate_entry (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_inode_p,&__pyx_n_s_name,&__pyx_n_s_deleted,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_inode_p)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 869, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 869, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("invalidate_entry", 0, 2, 3, 1); __PYX_ERR(3, 869, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deleted); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 869, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "invalidate_entry") < 0)) __PYX_ERR(3, 869, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_inode_p = __Pyx_PyInt_As_fuse_ino_t(values[0]); if (unlikely((__pyx_v_inode_p == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 869, __pyx_L3_error) __pyx_v_name = ((PyObject*)values[1]); if (values[2]) { __pyx_v_deleted = __Pyx_PyInt_As_fuse_ino_t(values[2]); if (unlikely((__pyx_v_deleted == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 869, __pyx_L3_error) } else { __pyx_v_deleted = ((fuse_ino_t)((fuse_ino_t)0)); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("invalidate_entry", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 869, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.invalidate_entry", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyBytes_Type), 1, "name", 1))) __PYX_ERR(3, 869, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_114invalidate_entry(__pyx_self, __pyx_v_inode_p, __pyx_v_name, __pyx_v_deleted); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_114invalidate_entry(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode_p, PyObject *__pyx_v_name, fuse_ino_t __pyx_v_deleted) { char *__pyx_v_cname; Py_ssize_t __pyx_v_slen; size_t __pyx_v_len_; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("invalidate_entry", 0); /* "pyfuse3.pyx":907 * cdef int ret * * PyBytes_AsStringAndSize(name, &cname, &slen) # <<<<<<<<<<<<<< * # len_ is guaranteed positive * len_ = slen */ __pyx_t_1 = PyBytes_AsStringAndSize(__pyx_v_name, (&__pyx_v_cname), ((Py_ssize_t *)(&__pyx_v_slen))); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(3, 907, __pyx_L1_error) /* "pyfuse3.pyx":909 * PyBytes_AsStringAndSize(name, &cname, &slen) * # len_ is guaranteed positive * len_ = slen # <<<<<<<<<<<<<< * * if deleted: */ __pyx_v_len_ = ((size_t)__pyx_v_slen); /* "pyfuse3.pyx":911 * len_ = slen * * if deleted: # <<<<<<<<<<<<<< * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) */ __pyx_t_2 = (__pyx_v_deleted != 0); if (__pyx_t_2) { /* "pyfuse3.pyx":912 * * if deleted: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":913 * if deleted: * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) # <<<<<<<<<<<<<< * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' */ __pyx_v_ret = fuse_lowlevel_notify_delete(__pyx_v_7pyfuse3_session, __pyx_v_inode_p, __pyx_v_deleted, __pyx_v_cname, __pyx_v_len_); } /* "pyfuse3.pyx":912 * * if deleted: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pyfuse3.pyx":914 * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' * + strerror(-ret)) */ __pyx_t_2 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":915 * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' # <<<<<<<<<<<<<< * + strerror(-ret)) * else: */ __pyx_t_3 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pyfuse3.pyx":916 * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' * + strerror(-ret)) # <<<<<<<<<<<<<< * else: * with nogil: # might block! */ __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyNumber_Add(__pyx_kp_u_fuse_lowlevel_notify_delete_retu, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pyfuse3.pyx":915 * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' # <<<<<<<<<<<<<< * + strerror(-ret)) * else: */ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(3, 915, __pyx_L1_error) /* "pyfuse3.pyx":914 * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' * + strerror(-ret)) */ } /* "pyfuse3.pyx":911 * len_ = slen * * if deleted: # <<<<<<<<<<<<<< * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) */ goto __pyx_L3; } /* "pyfuse3.pyx":918 * + strerror(-ret)) * else: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":919 * else: * with nogil: # might block! * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) # <<<<<<<<<<<<<< * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' */ __pyx_v_ret = fuse_lowlevel_notify_inval_entry(__pyx_v_7pyfuse3_session, __pyx_v_inode_p, __pyx_v_cname, __pyx_v_len_); } /* "pyfuse3.pyx":918 * + strerror(-ret)) * else: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L10; } __pyx_L10:; } } /* "pyfuse3.pyx":920 * with nogil: # might block! * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' * + strerror(-ret)) */ __pyx_t_2 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3.pyx":921 * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' # <<<<<<<<<<<<<< * + strerror(-ret)) * */ __pyx_t_5 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "pyfuse3.pyx":922 * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' * + strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Add(__pyx_kp_u_fuse_lowlevel_notify_inval_entry, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pyfuse3.pyx":921 * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' # <<<<<<<<<<<<<< * + strerror(-ret)) * */ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 921, __pyx_L1_error) /* "pyfuse3.pyx":920 * with nogil: # might block! * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' * + strerror(-ret)) */ } } __pyx_L3:; /* "pyfuse3.pyx":869 * * * def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): # <<<<<<<<<<<<<< * '''Invalidate directory entry * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.invalidate_entry", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":925 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_117invalidate_entry_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_116invalidate_entry_async, "invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False)\nAsynchronously invalidate directory entry\n\n This function performs the same operation as `invalidate_entry`, but does so\n asynchronously in a separate thread. This avoids the deadlocks that may\n occur when using `invalidate_entry` from within a request handler, but means\n that the function generally returns before the kernel has actually\n invalidated the entry, and that no errors can be reported (they will be\n logged though).\n\n The directory entries that are to be invalidated are put in an unbounded\n queue which is processed by a single thread. This means that if the entry at\n the beginning of the queue cannot be invalidated yet because a related file\n system operation is still in progress, none of the other entries will be\n processed and repeated calls to this function will result in continued\n growth of the queue.\n\n If there are errors, an exception is logged using the `logging` module.\n\n If *ignore_enoent* is True, ignore ENOENT errors (which occur if the\n kernel doesn't actually have knowledge of the entry that is to be\n removed).\n "); static PyMethodDef __pyx_mdef_7pyfuse3_117invalidate_entry_async = {"invalidate_entry_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_117invalidate_entry_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_116invalidate_entry_async}; static PyObject *__pyx_pw_7pyfuse3_117invalidate_entry_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_inode_p = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_deleted = 0; PyObject *__pyx_v_ignore_enoent = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("invalidate_entry_async (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_inode_p,&__pyx_n_s_name,&__pyx_n_s_deleted,&__pyx_n_s_ignore_enoent,0}; PyObject* values[4] = {0,0,0,0}; values[2] = ((PyObject *)((PyObject *)__pyx_int_0)); values[3] = ((PyObject *)((PyObject *)Py_False)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_inode_p)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 925, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 925, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("invalidate_entry_async", 0, 2, 4, 1); __PYX_ERR(3, 925, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deleted); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 925, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ignore_enoent); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 925, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "invalidate_entry_async") < 0)) __PYX_ERR(3, 925, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_inode_p = values[0]; __pyx_v_name = values[1]; __pyx_v_deleted = values[2]; __pyx_v_ignore_enoent = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("invalidate_entry_async", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 925, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.invalidate_entry_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_116invalidate_entry_async(__pyx_self, __pyx_v_inode_p, __pyx_v_name, __pyx_v_deleted, __pyx_v_ignore_enoent); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_116invalidate_entry_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode_p, PyObject *__pyx_v_name, PyObject *__pyx_v_deleted, PyObject *__pyx_v_ignore_enoent) { PyObject *__pyx_v_t = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("invalidate_entry_async", 0); /* "pyfuse3.pyx":951 * global _notify_queue * * if _notify_queue is None: # <<<<<<<<<<<<<< * log.debug('Starting notify worker.') * _notify_queue = Queue() */ __pyx_t_1 = (__pyx_v_7pyfuse3__notify_queue == Py_None); if (__pyx_t_1) { /* "pyfuse3.pyx":952 * * if _notify_queue is None: * log.debug('Starting notify worker.') # <<<<<<<<<<<<<< * _notify_queue = Queue() * t = threading.Thread(target=_notify_loop) */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u_Starting_notify_worker}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":953 * if _notify_queue is None: * log.debug('Starting notify worker.') * _notify_queue = Queue() # <<<<<<<<<<<<<< * t = threading.Thread(target=_notify_loop) * t.daemon = True */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Queue); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_XGOTREF(__pyx_v_7pyfuse3__notify_queue); __Pyx_DECREF_SET(__pyx_v_7pyfuse3__notify_queue, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":954 * log.debug('Starting notify worker.') * _notify_queue = Queue() * t = threading.Thread(target=_notify_loop) # <<<<<<<<<<<<<< * t.daemon = True * t.start() */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Thread); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_notify_loop); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_target, __pyx_t_3) < 0) __PYX_ERR(3, 954, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_t = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3.pyx":955 * _notify_queue = Queue() * t = threading.Thread(target=_notify_loop) * t.daemon = True # <<<<<<<<<<<<<< * t.start() * */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_t, __pyx_n_s_daemon, Py_True) < 0) __PYX_ERR(3, 955, __pyx_L1_error) /* "pyfuse3.pyx":956 * t = threading.Thread(target=_notify_loop) * t.daemon = True * t.start() # <<<<<<<<<<<<<< * * _notify_queue.put((inode_p, name, deleted, ignore_enoent)) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_start); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":951 * global _notify_queue * * if _notify_queue is None: # <<<<<<<<<<<<<< * log.debug('Starting notify worker.') * _notify_queue = Queue() */ } /* "pyfuse3.pyx":958 * t.start() * * _notify_queue.put((inode_p, name, deleted, ignore_enoent)) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3__notify_queue, __pyx_n_s_put); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_inode_p); __Pyx_GIVEREF(__pyx_v_inode_p); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_inode_p); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_name); __Pyx_INCREF(__pyx_v_deleted); __Pyx_GIVEREF(__pyx_v_deleted); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_deleted); __Pyx_INCREF(__pyx_v_ignore_enoent); __Pyx_GIVEREF(__pyx_v_ignore_enoent); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_ignore_enoent); __pyx_t_6 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":925 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.invalidate_entry_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_t); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":961 * * * def notify_store(inode, offset, data): # <<<<<<<<<<<<<< * '''Store data in kernel page cache * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_119notify_store(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_118notify_store, "notify_store(inode, offset, data)\nStore data in kernel page cache\n\n Sends *data* for the kernel to store it in the page cache for *inode* at\n *offset*. If this provides data beyond the current file size, the file is\n automatically extended.\n\n If this function raises an exception, the store may still have completed\n partially.\n\n If the operation is not supported by the kernel, raises `OSError`\n with errno ENOSYS.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_119notify_store = {"notify_store", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_119notify_store, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_118notify_store}; static PyObject *__pyx_pw_7pyfuse3_119notify_store(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_inode = 0; PyObject *__pyx_v_offset = 0; PyObject *__pyx_v_data = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("notify_store (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_inode,&__pyx_n_s_offset,&__pyx_n_s_data,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_inode)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 961, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_offset)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 961, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("notify_store", 1, 3, 3, 1); __PYX_ERR(3, 961, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 961, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("notify_store", 1, 3, 3, 2); __PYX_ERR(3, 961, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "notify_store") < 0)) __PYX_ERR(3, 961, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v_inode = values[0]; __pyx_v_offset = values[1]; __pyx_v_data = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("notify_store", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 961, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.notify_store", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_118notify_store(__pyx_self, __pyx_v_inode, __pyx_v_offset, __pyx_v_data); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_118notify_store(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode, PyObject *__pyx_v_offset, PyObject *__pyx_v_data) { int __pyx_v_ret; fuse_ino_t __pyx_v_ino; off_t __pyx_v_off; Py_buffer __pyx_v_pybuf; struct fuse_bufvec __pyx_v_bufvec; struct fuse_buf *__pyx_v_buf; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; struct fuse_buf *__pyx_t_2; void *__pyx_t_3; fuse_ino_t __pyx_t_4; off_t __pyx_t_5; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("notify_store", 0); /* "pyfuse3.pyx":985 * cdef fuse_buf *buf * * PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) # <<<<<<<<<<<<<< * bufvec.count = 1 * bufvec.idx = 0 */ __pyx_t_1 = PyObject_GetBuffer(__pyx_v_data, (&__pyx_v_pybuf), PyBUF_CONTIG_RO); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(3, 985, __pyx_L1_error) /* "pyfuse3.pyx":986 * * PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) * bufvec.count = 1 # <<<<<<<<<<<<<< * bufvec.idx = 0 * bufvec.off = 0 */ __pyx_v_bufvec.count = 1; /* "pyfuse3.pyx":987 * PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) * bufvec.count = 1 * bufvec.idx = 0 # <<<<<<<<<<<<<< * bufvec.off = 0 * */ __pyx_v_bufvec.idx = 0; /* "pyfuse3.pyx":988 * bufvec.count = 1 * bufvec.idx = 0 * bufvec.off = 0 # <<<<<<<<<<<<<< * * buf = bufvec.buf */ __pyx_v_bufvec.off = 0; /* "pyfuse3.pyx":990 * bufvec.off = 0 * * buf = bufvec.buf # <<<<<<<<<<<<<< * buf[0].flags = 0 * buf[0].mem = pybuf.buf */ __pyx_t_2 = __pyx_v_bufvec.buf; __pyx_v_buf = __pyx_t_2; /* "pyfuse3.pyx":991 * * buf = bufvec.buf * buf[0].flags = 0 # <<<<<<<<<<<<<< * buf[0].mem = pybuf.buf * buf[0].size = pybuf.len # guaranteed positive */ (__pyx_v_buf[0]).flags = 0; /* "pyfuse3.pyx":992 * buf = bufvec.buf * buf[0].flags = 0 * buf[0].mem = pybuf.buf # <<<<<<<<<<<<<< * buf[0].size = pybuf.len # guaranteed positive * */ __pyx_t_3 = __pyx_v_pybuf.buf; (__pyx_v_buf[0]).mem = __pyx_t_3; /* "pyfuse3.pyx":993 * buf[0].flags = 0 * buf[0].mem = pybuf.buf * buf[0].size = pybuf.len # guaranteed positive # <<<<<<<<<<<<<< * * ino = inode */ (__pyx_v_buf[0]).size = ((size_t)__pyx_v_pybuf.len); /* "pyfuse3.pyx":995 * buf[0].size = pybuf.len # guaranteed positive * * ino = inode # <<<<<<<<<<<<<< * off = offset * with nogil: */ __pyx_t_4 = __Pyx_PyInt_As_fuse_ino_t(__pyx_v_inode); if (unlikely((__pyx_t_4 == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 995, __pyx_L1_error) __pyx_v_ino = __pyx_t_4; /* "pyfuse3.pyx":996 * * ino = inode * off = offset # <<<<<<<<<<<<<< * with nogil: * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) */ __pyx_t_5 = __Pyx_PyInt_As_off_t(__pyx_v_offset); if (unlikely((__pyx_t_5 == ((off_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 996, __pyx_L1_error) __pyx_v_off = __pyx_t_5; /* "pyfuse3.pyx":997 * ino = inode * off = offset * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) * */ { #ifdef WITH_THREAD PyThreadState *_save; _save = NULL; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pyfuse3.pyx":998 * off = offset * with nogil: * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) # <<<<<<<<<<<<<< * * PyBuffer_Release(&pybuf) */ __pyx_v_ret = fuse_lowlevel_notify_store(__pyx_v_7pyfuse3_session, __pyx_v_ino, __pyx_v_off, (&__pyx_v_bufvec), 0); } /* "pyfuse3.pyx":997 * ino = inode * off = offset * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) * */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } } /* "pyfuse3.pyx":1000 * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) * * PyBuffer_Release(&pybuf) # <<<<<<<<<<<<<< * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) */ PyBuffer_Release((&__pyx_v_pybuf)); /* "pyfuse3.pyx":1001 * * PyBuffer_Release(&pybuf) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) * */ __pyx_t_6 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_6)) { /* "pyfuse3.pyx":1002 * PyBuffer_Release(&pybuf) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyNumber_Add(__pyx_kp_u_fuse_lowlevel_notify_store_retur, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9); __pyx_t_7 = 0; __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(3, 1002, __pyx_L1_error) /* "pyfuse3.pyx":1001 * * PyBuffer_Release(&pybuf) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) * */ } /* "pyfuse3.pyx":961 * * * def notify_store(inode, offset, data): # <<<<<<<<<<<<<< * '''Store data in kernel page cache * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("pyfuse3.notify_store", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":1005 * * * def get_sup_groups(pid): # <<<<<<<<<<<<<< * '''Return supplementary group ids of *pid* * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_121get_sup_groups(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_120get_sup_groups, "get_sup_groups(pid)\nReturn supplementary group ids of *pid*\n\n This function is relatively expensive because it has to read the group ids\n from ``/proc/[pid]/status``. For the same reason, it will also not work on\n systems that do not provide a ``/proc`` file system.\n\n Returns a set.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_121get_sup_groups = {"get_sup_groups", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_121get_sup_groups, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_120get_sup_groups}; static PyObject *__pyx_pw_7pyfuse3_121get_sup_groups(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_pid = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_sup_groups (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pid,0}; PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pid)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1005, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_sup_groups") < 0)) __PYX_ERR(3, 1005, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_pid = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get_sup_groups", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 1005, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.get_sup_groups", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_120get_sup_groups(__pyx_self, __pyx_v_pid); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_120get_sup_groups(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pid) { PyObject *__pyx_v_fh = NULL; PyObject *__pyx_v_line = NULL; PyObject *__pyx_v_gids = NULL; PyObject *__pyx_v_x = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; PyObject *(*__pyx_t_11)(PyObject *); int __pyx_t_12; PyObject *__pyx_t_13 = NULL; int __pyx_t_14; int __pyx_t_15; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_sup_groups", 0); /* "pyfuse3.pyx":1015 * ''' * * with open('/proc/%d/status' % pid, 'r') as fh: # <<<<<<<<<<<<<< * for line in fh: * if line.startswith('Groups:'): */ /*with:*/ { __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_proc_d_status, __pyx_v_pid); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(__pyx_n_u_r); __Pyx_GIVEREF(__pyx_n_u_r); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_r); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1015, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1015, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_t_4 = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /*try:*/ { { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); /*try:*/ { __pyx_v_fh = __pyx_t_4; __pyx_t_4 = 0; /* "pyfuse3.pyx":1016 * * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: # <<<<<<<<<<<<<< * if line.startswith('Groups:'): * break */ if (likely(PyList_CheckExact(__pyx_v_fh)) || PyTuple_CheckExact(__pyx_v_fh)) { __pyx_t_4 = __pyx_v_fh; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_fh); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1016, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 1016, __pyx_L7_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(3, 1016, __pyx_L7_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1016, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(3, 1016, __pyx_L7_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1016, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_11(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(3, 1016, __pyx_L7_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":1017 * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: * if line.startswith('Groups:'): # <<<<<<<<<<<<<< * break * else: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_line, __pyx_n_s_startswith); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1017, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_kp_u_Groups}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1017, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(3, 1017, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { /* "pyfuse3.pyx":1018 * for line in fh: * if line.startswith('Groups:'): * break # <<<<<<<<<<<<<< * else: * raise RuntimeError("Unable to parse %s" % fh.name) */ goto __pyx_L14_break; /* "pyfuse3.pyx":1017 * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: * if line.startswith('Groups:'): # <<<<<<<<<<<<<< * break * else: */ } /* "pyfuse3.pyx":1016 * * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: # <<<<<<<<<<<<<< * if line.startswith('Groups:'): * break */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L16_for_else; __pyx_L14_break:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L17_for_end; /*else*/ { __pyx_L16_for_else:; /* "pyfuse3.pyx":1020 * break * else: * raise RuntimeError("Unable to parse %s" % fh.name) # <<<<<<<<<<<<<< * gids = set() * for x in line.split()[1:]: */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fh, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1020, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Unable_to_parse_s, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1020, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1020, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(3, 1020, __pyx_L7_error) } __pyx_L17_for_end:; /* "pyfuse3.pyx":1015 * ''' * * with open('/proc/%d/status' % pid, 'r') as fh: # <<<<<<<<<<<<<< * for line in fh: * if line.startswith('Groups:'): */ } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L12_try_end; __pyx_L7_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /*except:*/ { __Pyx_AddTraceback("pyfuse3.get_sup_groups", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(3, 1015, __pyx_L9_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1015, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 1015, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_12 < 0) __PYX_ERR(3, 1015, __pyx_L9_except_error) __pyx_t_14 = (!__pyx_t_12); if (unlikely(__pyx_t_14)) { __Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_1, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; __PYX_ERR(3, 1015, __pyx_L9_except_error) } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L8_exception_handled; } __pyx_L9_except_error:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); goto __pyx_L1_error; __pyx_L8_exception_handled:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); __pyx_L12_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_3) { __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__34, NULL); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } goto __pyx_L6; } __pyx_L6:; } goto __pyx_L21; __pyx_L3_error:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L1_error; __pyx_L21:; } /* "pyfuse3.pyx":1021 * else: * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() # <<<<<<<<<<<<<< * for x in line.split()[1:]: * gids.add(int(x)) */ __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_gids = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":1022 * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() * for x in line.split()[1:]: # <<<<<<<<<<<<<< * gids.add(int(x)) * */ if (unlikely(!__pyx_v_line)) { __Pyx_RaiseUnboundLocalError("line"); __PYX_ERR(3, 1022, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_line, __pyx_n_s_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_2, 1, 0, NULL, NULL, &__pyx_slice__45, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 1022, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(3, 1022, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(3, 1022, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_11(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(3, 1022, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":1023 * gids = set() * for x in line.split()[1:]: * gids.add(int(x)) # <<<<<<<<<<<<<< * * return gids */ __pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_15 = PySet_Add(__pyx_v_gids, __pyx_t_1); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(3, 1023, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3.pyx":1022 * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() * for x in line.split()[1:]: # <<<<<<<<<<<<<< * gids.add(int(x)) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":1025 * gids.add(int(x)) * * return gids # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_gids); __pyx_r = __pyx_v_gids; goto __pyx_L0; /* "pyfuse3.pyx":1005 * * * def get_sup_groups(pid): # <<<<<<<<<<<<<< * '''Return supplementary group ids of *pid* * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.get_sup_groups", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_fh); __Pyx_XDECREF(__pyx_v_line); __Pyx_XDECREF(__pyx_v_gids); __Pyx_XDECREF(__pyx_v_x); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3.pyx":1028 * * * def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): # <<<<<<<<<<<<<< * '''Report a directory entry in response to a `~Operations.readdir` request. * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_123readdir_reply(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_122readdir_reply, "readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id)\nReport a directory entry in response to a `~Operations.readdir` request.\n\n This function should be called by the `~Operations.readdir` handler to\n provide the list of directory entries. The function should be called\n once for each directory entry, until it returns False.\n\n *token* must be the token received by the `~Operations.readdir` handler.\n\n *name* and must be the name of the directory entry and *attr* an\n `EntryAttributes` instance holding its attributes.\n\n *next_id* must be a 64-bit integer value that uniquely identifies the\n current position in the list of directory entries. It may be passed back\n to a later `~Operations.readdir` call to start another listing at the\n right position. This value should be robust in the presence of file\n removals and creations, i.e. if files are created or removed after a\n call to `~Operations.readdir` and `~Operations.readdir` is called again\n with *start_id* set to any previously supplied *next_id* values, under\n no circumstances must any file be reported twice or skipped over.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_123readdir_reply = {"readdir_reply", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_123readdir_reply, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_122readdir_reply}; static PyObject *__pyx_pw_7pyfuse3_123readdir_reply(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token = 0; PyObject *__pyx_v_name = 0; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_attr = 0; off_t __pyx_v_next_id; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("readdir_reply (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_token,&__pyx_n_s_name,&__pyx_n_s_attr,&__pyx_n_s_next_id,0}; PyObject* values[4] = {0,0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_token)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1028, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1028, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("readdir_reply", 1, 4, 4, 1); __PYX_ERR(3, 1028, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_attr)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1028, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("readdir_reply", 1, 4, 4, 2); __PYX_ERR(3, 1028, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_next_id)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1028, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("readdir_reply", 1, 4, 4, 3); __PYX_ERR(3, 1028, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "readdir_reply") < 0)) __PYX_ERR(3, 1028, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); } __pyx_v_token = ((struct __pyx_obj_7pyfuse3_ReaddirToken *)values[0]); __pyx_v_name = values[1]; __pyx_v_attr = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)values[2]); __pyx_v_next_id = __Pyx_PyInt_As_off_t(values[3]); if (unlikely((__pyx_v_next_id == ((off_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 1028, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("readdir_reply", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 1028, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.readdir_reply", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_token), __pyx_ptype_7pyfuse3_ReaddirToken, 1, "token", 0))) __PYX_ERR(3, 1028, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attr), __pyx_ptype_7pyfuse3_EntryAttributes, 1, "attr", 0))) __PYX_ERR(3, 1028, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_122readdir_reply(__pyx_self, __pyx_v_token, __pyx_v_name, __pyx_v_attr, __pyx_v_next_id); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_122readdir_reply(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token, PyObject *__pyx_v_name, struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_attr, off_t __pyx_v_next_id) { char *__pyx_v_cname; PyObject *__pyx_v_len_ = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; void *__pyx_t_2; char *__pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; Py_ssize_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("readdir_reply", 0); /* "pyfuse3.pyx":1052 * cdef char *cname * * if token.buf_start == NULL: # <<<<<<<<<<<<<< * token.buf_start = calloc_or_raise(token.size, sizeof(char)) * token.buf = token.buf_start */ __pyx_t_1 = (__pyx_v_token->buf_start == NULL); if (__pyx_t_1) { /* "pyfuse3.pyx":1053 * * if token.buf_start == NULL: * token.buf_start = calloc_or_raise(token.size, sizeof(char)) # <<<<<<<<<<<<<< * token.buf = token.buf_start * */ __pyx_t_2 = __pyx_f_7pyfuse3_calloc_or_raise(__pyx_v_token->size, (sizeof(char))); if (unlikely(__pyx_t_2 == ((void *)NULL))) __PYX_ERR(3, 1053, __pyx_L1_error) __pyx_v_token->buf_start = ((char *)__pyx_t_2); /* "pyfuse3.pyx":1054 * if token.buf_start == NULL: * token.buf_start = calloc_or_raise(token.size, sizeof(char)) * token.buf = token.buf_start # <<<<<<<<<<<<<< * * cname = PyBytes_AsString(name) */ __pyx_t_3 = __pyx_v_token->buf_start; __pyx_v_token->buf = __pyx_t_3; /* "pyfuse3.pyx":1052 * cdef char *cname * * if token.buf_start == NULL: # <<<<<<<<<<<<<< * token.buf_start = calloc_or_raise(token.size, sizeof(char)) * token.buf = token.buf_start */ } /* "pyfuse3.pyx":1056 * token.buf = token.buf_start * * cname = PyBytes_AsString(name) # <<<<<<<<<<<<<< * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, * cname, &attr.fuse_param, next_id) */ __pyx_t_3 = PyBytes_AsString(__pyx_v_name); if (unlikely(__pyx_t_3 == ((char *)NULL))) __PYX_ERR(3, 1056, __pyx_L1_error) __pyx_v_cname = __pyx_t_3; /* "pyfuse3.pyx":1057 * * cname = PyBytes_AsString(name) * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, # <<<<<<<<<<<<<< * cname, &attr.fuse_param, next_id) * if len_ > token.size: */ __pyx_t_4 = __Pyx_PyInt_FromSize_t(fuse_add_direntry_plus(__pyx_v_token->req, __pyx_v_token->buf, __pyx_v_token->size, __pyx_v_cname, (&__pyx_v_attr->fuse_param), __pyx_v_next_id)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_len_ = __pyx_t_4; __pyx_t_4 = 0; /* "pyfuse3.pyx":1059 * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, * cname, &attr.fuse_param, next_id) * if len_ > token.size: # <<<<<<<<<<<<<< * return False * */ __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_token->size); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_len_, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1059, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 1059, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* "pyfuse3.pyx":1060 * cname, &attr.fuse_param, next_id) * if len_ > token.size: * return False # <<<<<<<<<<<<<< * * token.size -= len_ */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; goto __pyx_L0; /* "pyfuse3.pyx":1059 * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, * cname, &attr.fuse_param, next_id) * if len_ > token.size: # <<<<<<<<<<<<<< * return False * */ } /* "pyfuse3.pyx":1062 * return False * * token.size -= len_ # <<<<<<<<<<<<<< * token.buf = &token.buf[len_] * return True */ __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_token->size); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_5, __pyx_v_len_); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyInt_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_6 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 1062, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_token->size = __pyx_t_6; /* "pyfuse3.pyx":1063 * * token.size -= len_ * token.buf = &token.buf[len_] # <<<<<<<<<<<<<< * return True */ __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_len_); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 1063, __pyx_L1_error) __pyx_v_token->buf = (&(__pyx_v_token->buf[__pyx_t_7])); /* "pyfuse3.pyx":1064 * token.size -= len_ * token.buf = &token.buf[len_] * return True # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0; /* "pyfuse3.pyx":1028 * * * def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): # <<<<<<<<<<<<<< * '''Report a directory entry in response to a `~Operations.readdir` request. * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.readdir_reply", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_len_); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_125__pyx_unpickle__WorkerData(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_124__pyx_unpickle__WorkerData, "__pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_125__pyx_unpickle__WorkerData = {"__pyx_unpickle__WorkerData", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_125__pyx_unpickle__WorkerData, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_124__pyx_unpickle__WorkerData}; static PyObject *__pyx_pw_7pyfuse3_125__pyx_unpickle__WorkerData(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle__WorkerData (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__WorkerData", 1, 3, 3, 1); __PYX_ERR(0, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__WorkerData", 1, 3, 3, 2); __PYX_ERR(0, 1, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle__WorkerData") < 0)) __PYX_ERR(0, 1, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) __pyx_v___pyx_state = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__WorkerData", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.__pyx_unpickle__WorkerData", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_124__pyx_unpickle__WorkerData(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_124__pyx_unpickle__WorkerData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle__WorkerData", 0); /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum not in (0x2a8cfde, 0x9365cf3, 0xe8d9c4e): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum */ __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__46, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "(tree fragment)":5 * cdef object __pyx_result * if __pyx_checksum not in (0x2a8cfde, 0x9365cf3, 0xe8d9c4e): * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum * __pyx_result = _WorkerData.__new__(__pyx_type) */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v___pyx_PickleError = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":6 * if __pyx_checksum not in (0x2a8cfde, 0x9365cf3, 0xe8d9c4e): * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum # <<<<<<<<<<<<<< * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum not in (0x2a8cfde, 0x9365cf3, 0xe8d9c4e): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum * __pyx_result = _WorkerData.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7pyfuse3__WorkerData), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v___pyx_result = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_2 = (__pyx_v___pyx_state != Py_None); if (__pyx_t_2) { /* "(tree fragment)":9 * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(0, 9, __pyx_L1_error) __pyx_t_1 = __pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":1 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle__WorkerData", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_PickleError); __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle__WorkerData__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] # <<<<<<<<<<<<<< * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[4]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->active_readers = __pyx_t_2; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v___pyx_result->read_lock); __Pyx_DECREF(__pyx_v___pyx_result->read_lock); __pyx_v___pyx_result->read_lock = __pyx_t_1; __pyx_t_1 = 0; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->task_count = __pyx_t_2; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->task_serial = __pyx_t_2; /* "(tree fragment)":13 * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[4]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 > 4); if (__pyx_t_5) { } else { __pyx_t_3 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_3 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (__pyx_t_3) { /* "(tree fragment)":14 * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[4]) # <<<<<<<<<<<<<< */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 14, __pyx_L1_error) } __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; __pyx_t_2 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_2 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[4]) */ } /* "(tree fragment)":11 * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle__WorkerData__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __pyx_unpickle_RequestContext(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_127__pyx_unpickle_RequestContext(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_126__pyx_unpickle_RequestContext, "__pyx_unpickle_RequestContext(__pyx_type, long __pyx_checksum, __pyx_state)"); static PyMethodDef __pyx_mdef_7pyfuse3_127__pyx_unpickle_RequestContext = {"__pyx_unpickle_RequestContext", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_127__pyx_unpickle_RequestContext, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_126__pyx_unpickle_RequestContext}; static PyObject *__pyx_pw_7pyfuse3_127__pyx_unpickle_RequestContext(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle_RequestContext (wrapper)", 0); { PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RequestContext", 1, 3, 3, 1); __PYX_ERR(0, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RequestContext", 1, 3, 3, 2); __PYX_ERR(0, 1, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_RequestContext") < 0)) __PYX_ERR(0, 1, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L3_error) __pyx_v___pyx_state = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RequestContext", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyfuse3.__pyx_unpickle_RequestContext", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_126__pyx_unpickle_RequestContext(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_126__pyx_unpickle_RequestContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle_RequestContext", 0); /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum not in (0xe56624f, 0x8a019cd, 0x223b7a8): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))" % __pyx_checksum */ __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__48, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "(tree fragment)":5 * cdef object __pyx_result * if __pyx_checksum not in (0xe56624f, 0x8a019cd, 0x223b7a8): * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))" % __pyx_checksum * __pyx_result = RequestContext.__new__(__pyx_type) */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v___pyx_PickleError = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":6 * if __pyx_checksum not in (0xe56624f, 0x8a019cd, 0x223b7a8): * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))" % __pyx_checksum # <<<<<<<<<<<<<< * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum not in (0xe56624f, 0x8a019cd, 0x223b7a8): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))" % __pyx_checksum */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))" % __pyx_checksum * __pyx_result = RequestContext.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7pyfuse3_RequestContext), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v___pyx_result = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))" % __pyx_checksum * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_2 = (__pyx_v___pyx_state != Py_None); if (__pyx_t_2) { /* "(tree fragment)":9 * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(0, 9, __pyx_L1_error) __pyx_t_1 = __pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe56624f, 0x8a019cd, 0x223b7a8) = (gid, pid, uid, umask))" % __pyx_checksum * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, tuple __pyx_state): * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":1 * def __pyx_unpickle_RequestContext(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle_RequestContext", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_PickleError); __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; gid_t __pyx_t_2; pid_t __pyx_t_3; uid_t __pyx_t_4; mode_t __pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle_RequestContext__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, tuple __pyx_state): * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] # <<<<<<<<<<<<<< * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[4]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_gid_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((gid_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->gid = __pyx_t_2; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_pid_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((pid_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->pid = __pyx_t_3; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyInt_As_uid_t(__pyx_t_1); if (unlikely((__pyx_t_4 == ((uid_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->uid = __pyx_t_4; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_As_mode_t(__pyx_t_1); if (unlikely((__pyx_t_5 == ((mode_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->umask = __pyx_t_5; /* "(tree fragment)":13 * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, tuple __pyx_state): * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[4]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_7 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_8 = (__pyx_t_7 > 4); if (__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L4_bool_binop_done; } __pyx_t_8 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_6 = __pyx_t_8; __pyx_L4_bool_binop_done:; if (__pyx_t_6) { /* "(tree fragment)":14 * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[4]) # <<<<<<<<<<<<<< */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_update); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 14, __pyx_L1_error) } __pyx_t_9 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_12 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_9}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_12, 1+__pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, tuple __pyx_state): * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[4]) */ } /* "(tree fragment)":11 * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle_RequestContext__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_obj_7pyfuse3__Container *__pyx_freelist_7pyfuse3__Container[60]; static int __pyx_freecount_7pyfuse3__Container = 0; static PyObject *__pyx_tp_new_7pyfuse3__Container(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3__Container > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3__Container)) & (int)(!__Pyx_PyType_HasFeature(t, (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { o = (PyObject*)__pyx_freelist_7pyfuse3__Container[--__pyx_freecount_7pyfuse3__Container]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3__Container)); (void) PyObject_INIT(o, t); } else { if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3__Container(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3__Container) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3__Container < 60) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3__Container)) & (int)(!__Pyx_PyType_HasFeature(Py_TYPE(o), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { __pyx_freelist_7pyfuse3__Container[__pyx_freecount_7pyfuse3__Container++] = ((struct __pyx_obj_7pyfuse3__Container *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static PyMethodDef __pyx_methods_7pyfuse3__Container[] = { {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_10_Container___reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_10_Container_2__setstate_cython__}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3__Container_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3__Container}, {Py_tp_doc, (void *)PyDoc_STR("For internal use by pyfuse3 only.")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3__Container}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3__Container}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3__Container_spec = { "pyfuse3._Container", sizeof(struct __pyx_obj_7pyfuse3__Container), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3__Container_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3__Container = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""_Container", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3__Container), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3__Container, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("For internal use by pyfuse3 only."), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3__Container, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3__Container, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_freelist_7pyfuse3_ReaddirToken[10]; static int __pyx_freecount_7pyfuse3_ReaddirToken = 0; static PyObject *__pyx_tp_new_7pyfuse3_ReaddirToken(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3_ReaddirToken > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken)) & (int)(!__Pyx_PyType_HasFeature(t, (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { o = (PyObject*)__pyx_freelist_7pyfuse3_ReaddirToken[--__pyx_freecount_7pyfuse3_ReaddirToken]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken)); (void) PyObject_INIT(o, t); } else { if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3_ReaddirToken(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_ReaddirToken) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3_ReaddirToken < 10) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken)) & (int)(!__Pyx_PyType_HasFeature(Py_TYPE(o), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { __pyx_freelist_7pyfuse3_ReaddirToken[__pyx_freecount_7pyfuse3_ReaddirToken++] = ((struct __pyx_obj_7pyfuse3_ReaddirToken *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static PyMethodDef __pyx_methods_7pyfuse3_ReaddirToken[] = { {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_12ReaddirToken___reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_12ReaddirToken_2__setstate_cython__}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_ReaddirToken_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_ReaddirToken}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_ReaddirToken}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_ReaddirToken}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_ReaddirToken_spec = { "pyfuse3.ReaddirToken", sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_ReaddirToken_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_ReaddirToken = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""ReaddirToken", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_ReaddirToken, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_ReaddirToken, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_ReaddirToken, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_vtabstruct_7pyfuse3__WorkerData __pyx_vtable_7pyfuse3__WorkerData; static PyObject *__pyx_tp_new_7pyfuse3__WorkerData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_7pyfuse3__WorkerData *p; PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; #endif p = ((struct __pyx_obj_7pyfuse3__WorkerData *)o); p->__pyx_vtab = __pyx_vtabptr_7pyfuse3__WorkerData; p->read_lock = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_7pyfuse3__WorkerData(PyObject *o) { struct __pyx_obj_7pyfuse3__WorkerData *p = (struct __pyx_obj_7pyfuse3__WorkerData *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3__WorkerData) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->read_lock); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_7pyfuse3__WorkerData(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3__WorkerData *p = (struct __pyx_obj_7pyfuse3__WorkerData *)o; if (p->read_lock) { e = (*v)(p->read_lock, a); if (e) return e; } return 0; } static int __pyx_tp_clear_7pyfuse3__WorkerData(PyObject *o) { PyObject* tmp; struct __pyx_obj_7pyfuse3__WorkerData *p = (struct __pyx_obj_7pyfuse3__WorkerData *)o; tmp = ((PyObject*)p->read_lock); p->read_lock = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_7pyfuse3__WorkerData[] = { {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11_WorkerData_2__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11_WorkerData_4__setstate_cython__}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3__WorkerData_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3__WorkerData}, {Py_tp_doc, (void *)PyDoc_STR("_WorkerData()\nFor internal use by pyfuse3 only.")}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3__WorkerData}, {Py_tp_clear, (void *)__pyx_tp_clear_7pyfuse3__WorkerData}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3__WorkerData}, {Py_tp_init, (void *)__pyx_pw_7pyfuse3_11_WorkerData_1__init__}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3__WorkerData}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3__WorkerData_spec = { "pyfuse3._WorkerData", sizeof(struct __pyx_obj_7pyfuse3__WorkerData), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3__WorkerData_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3__WorkerData = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""_WorkerData", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3__WorkerData), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3__WorkerData, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ PyDoc_STR("_WorkerData()\nFor internal use by pyfuse3 only."), /*tp_doc*/ __pyx_tp_traverse_7pyfuse3__WorkerData, /*tp_traverse*/ __pyx_tp_clear_7pyfuse3__WorkerData, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3__WorkerData, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif __pyx_pw_7pyfuse3_11_WorkerData_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3__WorkerData, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3_RequestContext *__pyx_freelist_7pyfuse3_RequestContext[10]; static int __pyx_freecount_7pyfuse3_RequestContext = 0; static PyObject *__pyx_tp_new_7pyfuse3_RequestContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3_RequestContext > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_RequestContext)) & (int)(!__Pyx_PyType_HasFeature(t, (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { o = (PyObject*)__pyx_freelist_7pyfuse3_RequestContext[--__pyx_freecount_7pyfuse3_RequestContext]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_RequestContext)); (void) PyObject_INIT(o, t); } else { if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3_RequestContext(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_RequestContext) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3_RequestContext < 10) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_RequestContext)) & (int)(!__Pyx_PyType_HasFeature(Py_TYPE(o), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { __pyx_freelist_7pyfuse3_RequestContext[__pyx_freecount_7pyfuse3_RequestContext++] = ((struct __pyx_obj_7pyfuse3_RequestContext *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_uid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_3uid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_pid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_3pid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_gid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_3gid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_umask(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_5umask_1__get__(o); } static PyMethodDef __pyx_methods_7pyfuse3_RequestContext[] = { {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_1__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_14RequestContext___getstate__}, {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_14RequestContext_2__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_14RequestContext_4__setstate_cython__}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_RequestContext[] = { {(char *)"uid", __pyx_getprop_7pyfuse3_14RequestContext_uid, 0, (char *)0, 0}, {(char *)"pid", __pyx_getprop_7pyfuse3_14RequestContext_pid, 0, (char *)0, 0}, {(char *)"gid", __pyx_getprop_7pyfuse3_14RequestContext_gid, 0, (char *)0, 0}, {(char *)"umask", __pyx_getprop_7pyfuse3_14RequestContext_umask, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_RequestContext_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_RequestContext}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class are passed to some `Operations` methods to\n provide information about the caller of the syscall that initiated\n the request.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_RequestContext}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_RequestContext}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_RequestContext}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_RequestContext_spec = { "pyfuse3.RequestContext", sizeof(struct __pyx_obj_7pyfuse3_RequestContext), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_RequestContext_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_RequestContext = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""RequestContext", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_RequestContext), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_RequestContext, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class are passed to some `Operations` methods to\n provide information about the caller of the syscall that initiated\n the request.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_RequestContext, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_RequestContext, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_RequestContext, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_freelist_7pyfuse3_SetattrFields[10]; static int __pyx_freecount_7pyfuse3_SetattrFields = 0; static PyObject *__pyx_tp_new_7pyfuse3_SetattrFields(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_7pyfuse3_SetattrFields *p; PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3_SetattrFields > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_SetattrFields)) & (int)(!__Pyx_PyType_HasFeature(t, (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { o = (PyObject*)__pyx_freelist_7pyfuse3_SetattrFields[--__pyx_freecount_7pyfuse3_SetattrFields]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_SetattrFields)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; } #endif p = ((struct __pyx_obj_7pyfuse3_SetattrFields *)o); p->update_atime = Py_None; Py_INCREF(Py_None); p->update_mtime = Py_None; Py_INCREF(Py_None); p->update_ctime = Py_None; Py_INCREF(Py_None); p->update_mode = Py_None; Py_INCREF(Py_None); p->update_uid = Py_None; Py_INCREF(Py_None); p->update_gid = Py_None; Py_INCREF(Py_None); p->update_size = Py_None; Py_INCREF(Py_None); if (unlikely(__pyx_pw_7pyfuse3_13SetattrFields_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_SetattrFields(PyObject *o) { struct __pyx_obj_7pyfuse3_SetattrFields *p = (struct __pyx_obj_7pyfuse3_SetattrFields *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_SetattrFields) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->update_atime); Py_CLEAR(p->update_mtime); Py_CLEAR(p->update_ctime); Py_CLEAR(p->update_mode); Py_CLEAR(p->update_uid); Py_CLEAR(p->update_gid); Py_CLEAR(p->update_size); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3_SetattrFields < 10) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_SetattrFields)) & (int)(!__Pyx_PyType_HasFeature(Py_TYPE(o), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { __pyx_freelist_7pyfuse3_SetattrFields[__pyx_freecount_7pyfuse3_SetattrFields++] = ((struct __pyx_obj_7pyfuse3_SetattrFields *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3_SetattrFields(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3_SetattrFields *p = (struct __pyx_obj_7pyfuse3_SetattrFields *)o; if (p->update_atime) { e = (*v)(p->update_atime, a); if (e) return e; } if (p->update_mtime) { e = (*v)(p->update_mtime, a); if (e) return e; } if (p->update_ctime) { e = (*v)(p->update_ctime, a); if (e) return e; } if (p->update_mode) { e = (*v)(p->update_mode, a); if (e) return e; } if (p->update_uid) { e = (*v)(p->update_uid, a); if (e) return e; } if (p->update_gid) { e = (*v)(p->update_gid, a); if (e) return e; } if (p->update_size) { e = (*v)(p->update_size, a); if (e) return e; } return 0; } static int __pyx_tp_clear_7pyfuse3_SetattrFields(PyObject *o) { PyObject* tmp; struct __pyx_obj_7pyfuse3_SetattrFields *p = (struct __pyx_obj_7pyfuse3_SetattrFields *)o; tmp = ((PyObject*)p->update_atime); p->update_atime = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_mtime); p->update_mtime = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_ctime); p->update_ctime = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_mode); p->update_mode = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_uid); p->update_uid = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_gid); p->update_gid = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_size); p->update_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_atime(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_12update_atime_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_mtime(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_12update_mtime_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_ctime(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_12update_ctime_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_mode(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_11update_mode_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_uid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_10update_uid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_gid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_10update_gid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_11update_size_1__get__(o); } static PyMethodDef __pyx_methods_7pyfuse3_SetattrFields[] = { {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_13SetattrFields_2__getstate__}, {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_13SetattrFields_4__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_13SetattrFields_6__setstate_cython__}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_SetattrFields[] = { {(char *)"update_atime", __pyx_getprop_7pyfuse3_13SetattrFields_update_atime, 0, (char *)0, 0}, {(char *)"update_mtime", __pyx_getprop_7pyfuse3_13SetattrFields_update_mtime, 0, (char *)0, 0}, {(char *)"update_ctime", __pyx_getprop_7pyfuse3_13SetattrFields_update_ctime, 0, (char *)0, 0}, {(char *)"update_mode", __pyx_getprop_7pyfuse3_13SetattrFields_update_mode, 0, (char *)0, 0}, {(char *)"update_uid", __pyx_getprop_7pyfuse3_13SetattrFields_update_uid, 0, (char *)0, 0}, {(char *)"update_gid", __pyx_getprop_7pyfuse3_13SetattrFields_update_gid, 0, (char *)0, 0}, {(char *)"update_size", __pyx_getprop_7pyfuse3_13SetattrFields_update_size, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_SetattrFields_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_SetattrFields}, {Py_tp_doc, (void *)PyDoc_STR("\n `SetattrFields` instances are passed to the `~Operations.setattr` handler\n to specify which attributes should be updated.\n ")}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3_SetattrFields}, {Py_tp_clear, (void *)__pyx_tp_clear_7pyfuse3_SetattrFields}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_SetattrFields}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_SetattrFields}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_SetattrFields}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_SetattrFields_spec = { "pyfuse3.SetattrFields", sizeof(struct __pyx_obj_7pyfuse3_SetattrFields), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3_SetattrFields_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_SetattrFields = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""SetattrFields", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_SetattrFields), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_SetattrFields, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ PyDoc_STR("\n `SetattrFields` instances are passed to the `~Operations.setattr` handler\n to specify which attributes should be updated.\n "), /*tp_doc*/ __pyx_tp_traverse_7pyfuse3_SetattrFields, /*tp_traverse*/ __pyx_tp_clear_7pyfuse3_SetattrFields, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_SetattrFields, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_SetattrFields, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_SetattrFields, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_freelist_7pyfuse3_EntryAttributes[30]; static int __pyx_freecount_7pyfuse3_EntryAttributes = 0; static PyObject *__pyx_tp_new_7pyfuse3_EntryAttributes(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3_EntryAttributes > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes)) & (int)(!__Pyx_PyType_HasFeature(t, (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { o = (PyObject*)__pyx_freelist_7pyfuse3_EntryAttributes[--__pyx_freecount_7pyfuse3_EntryAttributes]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes)); (void) PyObject_INIT(o, t); } else { if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; } #endif if (unlikely(__pyx_pw_7pyfuse3_15EntryAttributes_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_EntryAttributes(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_EntryAttributes) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3_EntryAttributes < 30) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes)) & (int)(!__Pyx_PyType_HasFeature(Py_TYPE(o), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { __pyx_freelist_7pyfuse3_EntryAttributes[__pyx_freecount_7pyfuse3_EntryAttributes++] = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_ino(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_ino(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_generation(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_10generation_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_generation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_10generation_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_attr_timeout(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_attr_timeout(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_entry_timeout(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_entry_timeout(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_mode(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_mode(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_nlink(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_nlink(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_uid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_uid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_gid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_gid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_rdev(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_rdev(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_size(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_blocks(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_blocks(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_blksize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_blksize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_atime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_atime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_mtime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_mtime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_ctime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_ctime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_birthtime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_birthtime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_7pyfuse3_EntryAttributes[] = { {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_2__getstate__}, {"__setstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_4__setstate__}, {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_6__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_15EntryAttributes_8__setstate_cython__}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_EntryAttributes[] = { {(char *)"st_ino", __pyx_getprop_7pyfuse3_15EntryAttributes_st_ino, __pyx_setprop_7pyfuse3_15EntryAttributes_st_ino, (char *)0, 0}, {(char *)"generation", __pyx_getprop_7pyfuse3_15EntryAttributes_generation, __pyx_setprop_7pyfuse3_15EntryAttributes_generation, (char *)PyDoc_STR("The inode generation number"), 0}, {(char *)"attr_timeout", __pyx_getprop_7pyfuse3_15EntryAttributes_attr_timeout, __pyx_setprop_7pyfuse3_15EntryAttributes_attr_timeout, (char *)PyDoc_STR("Validity timeout for the attributes of the directory entry\n\n Floating point numbers may be used. Units are seconds.\n "), 0}, {(char *)"entry_timeout", __pyx_getprop_7pyfuse3_15EntryAttributes_entry_timeout, __pyx_setprop_7pyfuse3_15EntryAttributes_entry_timeout, (char *)PyDoc_STR("Validity timeout for the name/existence of the directory entry\n\n Floating point numbers may be used. Units are seconds.\n "), 0}, {(char *)"st_mode", __pyx_getprop_7pyfuse3_15EntryAttributes_st_mode, __pyx_setprop_7pyfuse3_15EntryAttributes_st_mode, (char *)0, 0}, {(char *)"st_nlink", __pyx_getprop_7pyfuse3_15EntryAttributes_st_nlink, __pyx_setprop_7pyfuse3_15EntryAttributes_st_nlink, (char *)0, 0}, {(char *)"st_uid", __pyx_getprop_7pyfuse3_15EntryAttributes_st_uid, __pyx_setprop_7pyfuse3_15EntryAttributes_st_uid, (char *)0, 0}, {(char *)"st_gid", __pyx_getprop_7pyfuse3_15EntryAttributes_st_gid, __pyx_setprop_7pyfuse3_15EntryAttributes_st_gid, (char *)0, 0}, {(char *)"st_rdev", __pyx_getprop_7pyfuse3_15EntryAttributes_st_rdev, __pyx_setprop_7pyfuse3_15EntryAttributes_st_rdev, (char *)0, 0}, {(char *)"st_size", __pyx_getprop_7pyfuse3_15EntryAttributes_st_size, __pyx_setprop_7pyfuse3_15EntryAttributes_st_size, (char *)0, 0}, {(char *)"st_blocks", __pyx_getprop_7pyfuse3_15EntryAttributes_st_blocks, __pyx_setprop_7pyfuse3_15EntryAttributes_st_blocks, (char *)0, 0}, {(char *)"st_blksize", __pyx_getprop_7pyfuse3_15EntryAttributes_st_blksize, __pyx_setprop_7pyfuse3_15EntryAttributes_st_blksize, (char *)0, 0}, {(char *)"st_atime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_atime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_atime_ns, (char *)PyDoc_STR("Time of last access in (integer) nanoseconds"), 0}, {(char *)"st_mtime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_mtime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_mtime_ns, (char *)PyDoc_STR("Time of last modification in (integer) nanoseconds"), 0}, {(char *)"st_ctime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_ctime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_ctime_ns, (char *)PyDoc_STR("Time of last inode modification in (integer) nanoseconds"), 0}, {(char *)"st_birthtime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_birthtime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_birthtime_ns, (char *)PyDoc_STR("Time of inode creation in (integer) nanoseconds.\n\n Only available under BSD and OS X. Will be zero on Linux.\n "), 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_EntryAttributes_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_EntryAttributes}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class store attributes of directory entries.\n Most of the attributes correspond to the elements of the ``stat``\n C struct as returned by e.g. ``fstat`` and should be\n self-explanatory.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_EntryAttributes}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_EntryAttributes}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_EntryAttributes}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_EntryAttributes_spec = { "pyfuse3.EntryAttributes", sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_EntryAttributes_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_EntryAttributes = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""EntryAttributes", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_EntryAttributes, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class store attributes of directory entries.\n Most of the attributes correspond to the elements of the ``stat``\n C struct as returned by e.g. ``fstat`` and should be\n self-explanatory.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_EntryAttributes, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_EntryAttributes, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_EntryAttributes, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_vtabstruct_7pyfuse3_FileInfo __pyx_vtable_7pyfuse3_FileInfo; static struct __pyx_obj_7pyfuse3_FileInfo *__pyx_freelist_7pyfuse3_FileInfo[10]; static int __pyx_freecount_7pyfuse3_FileInfo = 0; static PyObject *__pyx_tp_new_7pyfuse3_FileInfo(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_7pyfuse3_FileInfo *p; PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3_FileInfo > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_FileInfo)) & (int)(!__Pyx_PyType_HasFeature(t, (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { o = (PyObject*)__pyx_freelist_7pyfuse3_FileInfo[--__pyx_freecount_7pyfuse3_FileInfo]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_FileInfo)); (void) PyObject_INIT(o, t); } else { if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; } #endif p = ((struct __pyx_obj_7pyfuse3_FileInfo *)o); p->__pyx_vtab = __pyx_vtabptr_7pyfuse3_FileInfo; if (unlikely(__pyx_pw_7pyfuse3_8FileInfo_1__cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_FileInfo(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_FileInfo) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3_FileInfo < 10) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_FileInfo)) & (int)(!__Pyx_PyType_HasFeature(Py_TYPE(o), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { __pyx_freelist_7pyfuse3_FileInfo[__pyx_freecount_7pyfuse3_FileInfo++] = ((struct __pyx_obj_7pyfuse3_FileInfo *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_fh(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_2fh_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_fh(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_2fh_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_direct_io(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_9direct_io_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_direct_io(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_9direct_io_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_keep_cache(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_keep_cache(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_nonseekable(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_nonseekable(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_7pyfuse3_FileInfo[] = { {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_8FileInfo_2__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_8FileInfo_4__setstate_cython__}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_FileInfo[] = { {(char *)"fh", __pyx_getprop_7pyfuse3_8FileInfo_fh, __pyx_setprop_7pyfuse3_8FileInfo_fh, (char *)PyDoc_STR("fh: 'uint64_t'"), 0}, {(char *)"direct_io", __pyx_getprop_7pyfuse3_8FileInfo_direct_io, __pyx_setprop_7pyfuse3_8FileInfo_direct_io, (char *)PyDoc_STR("direct_io: 'bool'"), 0}, {(char *)"keep_cache", __pyx_getprop_7pyfuse3_8FileInfo_keep_cache, __pyx_setprop_7pyfuse3_8FileInfo_keep_cache, (char *)PyDoc_STR("keep_cache: 'bool'"), 0}, {(char *)"nonseekable", __pyx_getprop_7pyfuse3_8FileInfo_nonseekable, __pyx_setprop_7pyfuse3_8FileInfo_nonseekable, (char *)PyDoc_STR("nonseekable: 'bool'"), 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_FileInfo_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_FileInfo}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class store options and data that `Operations.open`\n returns. The attributes correspond to the elements of the ``fuse_file_info``\n struct that are relevant to the `Operations.open` function.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_FileInfo}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_FileInfo}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_FileInfo}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_FileInfo_spec = { "pyfuse3.FileInfo", sizeof(struct __pyx_obj_7pyfuse3_FileInfo), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_FileInfo_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_FileInfo = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""FileInfo", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_FileInfo), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_FileInfo, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class store options and data that `Operations.open`\n returns. The attributes correspond to the elements of the ``fuse_file_info``\n struct that are relevant to the `Operations.open` function.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_FileInfo, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_FileInfo, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_FileInfo, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_freelist_7pyfuse3_StatvfsData[1]; static int __pyx_freecount_7pyfuse3_StatvfsData = 0; static PyObject *__pyx_tp_new_7pyfuse3_StatvfsData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3_StatvfsData > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_StatvfsData)) & (int)(!__Pyx_PyType_HasFeature(t, (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { o = (PyObject*)__pyx_freelist_7pyfuse3_StatvfsData[--__pyx_freecount_7pyfuse3_StatvfsData]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_StatvfsData)); (void) PyObject_INIT(o, t); } else { if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; } #endif if (unlikely(__pyx_pw_7pyfuse3_11StatvfsData_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_StatvfsData(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_StatvfsData) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3_StatvfsData < 1) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3_StatvfsData)) & (int)(!__Pyx_PyType_HasFeature(Py_TYPE(o), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE))))) { __pyx_freelist_7pyfuse3_StatvfsData[__pyx_freecount_7pyfuse3_StatvfsData++] = ((struct __pyx_obj_7pyfuse3_StatvfsData *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_bsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_bsize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_frsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_frsize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_blocks(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_blocks(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_bfree(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_bfree(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_bavail(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_bavail(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_files(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_files_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_files(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_files_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_ffree(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_ffree(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_favail(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_favail(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_namemax(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_namemax(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_7pyfuse3_StatvfsData[] = { {"__getstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_2__getstate__}, {"__setstate__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_4__setstate__}, {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_6__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_11StatvfsData_8__setstate_cython__}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_StatvfsData[] = { {(char *)"f_bsize", __pyx_getprop_7pyfuse3_11StatvfsData_f_bsize, __pyx_setprop_7pyfuse3_11StatvfsData_f_bsize, (char *)0, 0}, {(char *)"f_frsize", __pyx_getprop_7pyfuse3_11StatvfsData_f_frsize, __pyx_setprop_7pyfuse3_11StatvfsData_f_frsize, (char *)0, 0}, {(char *)"f_blocks", __pyx_getprop_7pyfuse3_11StatvfsData_f_blocks, __pyx_setprop_7pyfuse3_11StatvfsData_f_blocks, (char *)0, 0}, {(char *)"f_bfree", __pyx_getprop_7pyfuse3_11StatvfsData_f_bfree, __pyx_setprop_7pyfuse3_11StatvfsData_f_bfree, (char *)0, 0}, {(char *)"f_bavail", __pyx_getprop_7pyfuse3_11StatvfsData_f_bavail, __pyx_setprop_7pyfuse3_11StatvfsData_f_bavail, (char *)0, 0}, {(char *)"f_files", __pyx_getprop_7pyfuse3_11StatvfsData_f_files, __pyx_setprop_7pyfuse3_11StatvfsData_f_files, (char *)0, 0}, {(char *)"f_ffree", __pyx_getprop_7pyfuse3_11StatvfsData_f_ffree, __pyx_setprop_7pyfuse3_11StatvfsData_f_ffree, (char *)0, 0}, {(char *)"f_favail", __pyx_getprop_7pyfuse3_11StatvfsData_f_favail, __pyx_setprop_7pyfuse3_11StatvfsData_f_favail, (char *)0, 0}, {(char *)"f_namemax", __pyx_getprop_7pyfuse3_11StatvfsData_f_namemax, __pyx_setprop_7pyfuse3_11StatvfsData_f_namemax, (char *)0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_StatvfsData_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_StatvfsData}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class store information about the file system.\n The attributes correspond to the elements of the ``statvfs``\n struct, see :manpage:`statvfs(2)` for details.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_StatvfsData}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_StatvfsData}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_StatvfsData}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_StatvfsData_spec = { "pyfuse3.StatvfsData", sizeof(struct __pyx_obj_7pyfuse3_StatvfsData), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_StatvfsData_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_StatvfsData = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""StatvfsData", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_StatvfsData), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_StatvfsData, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class store information about the file system.\n The attributes correspond to the elements of the ``statvfs``\n struct, see :manpage:`statvfs(2)` for details.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_StatvfsData, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_StatvfsData, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_StatvfsData, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3_FUSEError(PyTypeObject *t, PyObject *a, PyObject *k) { PyObject *o = __Pyx_PyType_GetSlot((&((PyTypeObject*)PyExc_Exception)[0]), tp_new, newfunc)(t, a, k); if (unlikely(!o)) return 0; if (unlikely(__pyx_pw_7pyfuse3_9FUSEError_1__cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static int __pyx_tp_traverse_7pyfuse3_FUSEError(PyObject *o, visitproc v, void *a) { int e; if (!(&((PyTypeObject*)PyExc_Exception)[0])->tp_traverse); else { e = (&((PyTypeObject*)PyExc_Exception)[0])->tp_traverse(o,v,a); if (e) return e; } return 0; } static int __pyx_tp_clear_7pyfuse3_FUSEError(PyObject *o) { if (!(&((PyTypeObject*)PyExc_Exception)[0])->tp_clear); else (&((PyTypeObject*)PyExc_Exception)[0])->tp_clear(o); return 0; } static PyObject *__pyx_getprop_7pyfuse3_9FUSEError_errno(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_9FUSEError_5errno_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_9FUSEError_errno_(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_9FUSEError_6errno__1__get__(o); } static PyMethodDef __pyx_methods_7pyfuse3_FUSEError[] = { {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_9FUSEError_4__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_9FUSEError_6__setstate_cython__}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_FUSEError[] = { {(char *)"errno", __pyx_getprop_7pyfuse3_9FUSEError_errno, 0, (char *)PyDoc_STR("Error code to return to client process"), 0}, {(char *)"errno_", __pyx_getprop_7pyfuse3_9FUSEError_errno_, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_FUSEError_slots[] = { {Py_tp_str, (void *)__pyx_pw_7pyfuse3_9FUSEError_3__str__}, {Py_tp_doc, (void *)PyDoc_STR("\n This exception may be raised by request handlers to indicate that\n the requested operation could not be carried out. The system call\n that resulted in the request (if any) will then fail with error\n code *errno_*.\n ")}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3_FUSEError}, {Py_tp_clear, (void *)__pyx_tp_clear_7pyfuse3_FUSEError}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_FUSEError}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_FUSEError}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_FUSEError}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_FUSEError_spec = { "pyfuse3.FUSEError", sizeof(struct __pyx_obj_7pyfuse3_FUSEError), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3_FUSEError_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_FUSEError = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""FUSEError", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_FUSEError), /*tp_basicsize*/ 0, /*tp_itemsize*/ 0, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_pw_7pyfuse3_9FUSEError_3__str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ PyDoc_STR("\n This exception may be raised by request handlers to indicate that\n the requested operation could not be carried out. The system call\n that resulted in the request (if any) will then fail with error\n code *errno_*.\n "), /*tp_doc*/ __pyx_tp_traverse_7pyfuse3_FUSEError, /*tp_traverse*/ __pyx_tp_clear_7pyfuse3_FUSEError, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_FUSEError, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_FUSEError, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_FUSEError, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *__pyx_freelist_7pyfuse3___pyx_scope_struct__fuse_lookup_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct__fuse_lookup_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct__fuse_lookup_async[__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct__fuse_lookup_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_spec = { "pyfuse3.__pyx_scope_struct__fuse_lookup_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct__fuse_lookup_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct__fuse_lookup_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_spec = { "pyfuse3.__pyx_scope_struct_1_fuse_getattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_1_fuse_getattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_fh); Py_CLEAR(p->__pyx_v_fields); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_fh) { e = (*v)(p->__pyx_v_fh, a); if (e) return e; } if (p->__pyx_v_fields) { e = (*v)(((PyObject *)p->__pyx_v_fields), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_spec = { "pyfuse3.__pyx_scope_struct_2_fuse_setattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_2_fuse_setattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_target); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_target) { e = (*v)(p->__pyx_v_target, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_spec = { "pyfuse3.__pyx_scope_struct_3_fuse_readlink_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_3_fuse_readlink_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_spec = { "pyfuse3.__pyx_scope_struct_4_fuse_mknod_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_4_fuse_mknod_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_spec = { "pyfuse3.__pyx_scope_struct_5_fuse_mkdir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_5_fuse_mkdir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_spec = { "pyfuse3.__pyx_scope_struct_6_fuse_unlink_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_6_fuse_unlink_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_spec = { "pyfuse3.__pyx_scope_struct_7_fuse_rmdir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_7_fuse_rmdir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_link); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_link) { e = (*v)(p->__pyx_v_link, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_spec = { "pyfuse3.__pyx_scope_struct_8_fuse_symlink_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_8_fuse_symlink_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_9_fuse_rename_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_9_fuse_rename_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_newname); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_9_fuse_rename_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_newname) { e = (*v)(p->__pyx_v_newname, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_9_fuse_rename_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_spec = { "pyfuse3.__pyx_scope_struct_9_fuse_rename_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_9_fuse_rename_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_10_fuse_link_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_10_fuse_link_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_newname); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_10_fuse_link_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_newname) { e = (*v)(p->__pyx_v_newname, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_10_fuse_link_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_spec = { "pyfuse3.__pyx_scope_struct_10_fuse_link_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_10_fuse_link_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_10_fuse_link_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_11_fuse_open_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_11_fuse_open_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_fi); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_11_fuse_open_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_fi) { e = (*v)(((PyObject *)p->__pyx_v_fi), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_11_fuse_open_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_spec = { "pyfuse3.__pyx_scope_struct_11_fuse_open_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_11_fuse_open_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_11_fuse_open_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_12_fuse_read_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *p; PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_12_fuse_read_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif p = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o); p->__pyx_v_pybuf.obj = NULL; return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_12_fuse_read_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o; if (p->__pyx_v_buf) { e = (*v)(p->__pyx_v_buf, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_v_pybuf.obj) { e = (*v)(p->__pyx_v_pybuf.obj, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_12_fuse_read_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_spec = { "pyfuse3.__pyx_scope_struct_12_fuse_read_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_12_fuse_read_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_12_fuse_read_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_13_fuse_write_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_13_fuse_write_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_pbuf); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_13_fuse_write_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_pbuf) { e = (*v)(p->__pyx_v_pbuf, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_13_fuse_write_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_spec = { "pyfuse3.__pyx_scope_struct_13_fuse_write_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_13_fuse_write_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_13_fuse_write_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)o; if (p->__pyx_v_buf) { e = (*v)(p->__pyx_v_buf, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_spec = { "pyfuse3.__pyx_scope_struct_14_fuse_write_buf_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_14_fuse_write_buf_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_15_fuse_flush_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_15_fuse_flush_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_15_fuse_flush_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_15_fuse_flush_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_spec = { "pyfuse3.__pyx_scope_struct_15_fuse_flush_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_15_fuse_flush_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_16_fuse_release_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_16_fuse_release_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_16_fuse_release_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_16_fuse_release_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_spec = { "pyfuse3.__pyx_scope_struct_16_fuse_release_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_16_fuse_release_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_16_fuse_release_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_spec = { "pyfuse3.__pyx_scope_struct_17_fuse_fsync_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_17_fuse_fsync_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_spec = { "pyfuse3.__pyx_scope_struct_18_fuse_opendir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_18_fuse_opendir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_token); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_token) { e = (*v)(((PyObject *)p->__pyx_v_token), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_spec = { "pyfuse3.__pyx_scope_struct_19_fuse_readdirplus_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_19_fuse_readdirplus_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_spec = { "pyfuse3.__pyx_scope_struct_20_fuse_releasedir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_20_fuse_releasedir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_spec = { "pyfuse3.__pyx_scope_struct_21_fuse_fsyncdir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_21_fuse_fsyncdir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_stats); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_stats) { e = (*v)(((PyObject *)p->__pyx_v_stats), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_spec = { "pyfuse3.__pyx_scope_struct_22_fuse_statfs_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_22_fuse_statfs_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_value); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); Py_CLEAR(p->__pyx_t_3); Py_CLEAR(p->__pyx_t_4); Py_CLEAR(p->__pyx_t_5); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_value) { e = (*v)(p->__pyx_v_value, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_t_3) { e = (*v)(p->__pyx_t_3, a); if (e) return e; } if (p->__pyx_t_4) { e = (*v)(p->__pyx_t_4, a); if (e) return e; } if (p->__pyx_t_5) { e = (*v)(p->__pyx_t_5, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_spec = { "pyfuse3.__pyx_scope_struct_23_fuse_setxattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_23_fuse_setxattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)o; if (p->__pyx_v_buf) { e = (*v)(p->__pyx_v_buf, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_spec = { "pyfuse3.__pyx_scope_struct_24_fuse_getxattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_24_fuse_getxattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_res); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)o; if (p->__pyx_v_buf) { e = (*v)(p->__pyx_v_buf, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_res) { e = (*v)(p->__pyx_v_res, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_spec = { "pyfuse3.__pyx_scope_struct_25_fuse_listxattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_25_fuse_listxattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_spec = { "pyfuse3.__pyx_scope_struct_26_fuse_removexattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_26_fuse_removexattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_27_fuse_access_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_27_fuse_access_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_allowed); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_27_fuse_access_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)o; if (p->__pyx_v_allowed) { e = (*v)(p->__pyx_v_allowed, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_27_fuse_access_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_spec = { "pyfuse3.__pyx_scope_struct_27_fuse_access_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_27_fuse_access_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_27_fuse_access_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_28_fuse_create_async[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_create_async = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_create_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_create_async > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_28_fuse_create_async[--__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_create_async]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_create_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_create_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_fi); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_tmp); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_create_async < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_28_fuse_create_async[__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_create_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_28_fuse_create_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async *)o; if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_fi) { e = (*v)(((PyObject *)p->__pyx_v_fi), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_tmp) { e = (*v)(p->__pyx_v_tmp, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_create_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_28_fuse_create_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_create_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async_spec = { "pyfuse3.__pyx_scope_struct_28_fuse_create_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_28_fuse_create_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_create_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_create_async, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_28_fuse_create_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_create_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *__pyx_freelist_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable[--__pyx_freecount_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); Py_CLEAR(p->__pyx_t_3); Py_CLEAR(p->__pyx_t_4); Py_CLEAR(p->__pyx_t_5); Py_CLEAR(p->__pyx_t_6); Py_CLEAR(p->__pyx_t_7); Py_CLEAR(p->__pyx_t_8); Py_CLEAR(p->__pyx_t_9); Py_CLEAR(p->__pyx_t_10); Py_CLEAR(p->__pyx_t_11); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable[__pyx_freecount_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable *)o; if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_t_3) { e = (*v)(p->__pyx_t_3, a); if (e) return e; } if (p->__pyx_t_4) { e = (*v)(p->__pyx_t_4, a); if (e) return e; } if (p->__pyx_t_5) { e = (*v)(p->__pyx_t_5, a); if (e) return e; } if (p->__pyx_t_6) { e = (*v)(p->__pyx_t_6, a); if (e) return e; } if (p->__pyx_t_7) { e = (*v)(p->__pyx_t_7, a); if (e) return e; } if (p->__pyx_t_8) { e = (*v)(p->__pyx_t_8, a); if (e) return e; } if (p->__pyx_t_9) { e = (*v)(p->__pyx_t_9, a); if (e) return e; } if (p->__pyx_t_10) { e = (*v)(p->__pyx_t_10, a); if (e) return e; } if (p->__pyx_t_11) { e = (*v)(p->__pyx_t_11, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable_spec = { "pyfuse3.__pyx_scope_struct_29__wait_fuse_readable", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_29__wait_fuse_readable", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *__pyx_freelist_7pyfuse3___pyx_scope_struct_30__session_loop[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_30__session_loop = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__session_loop(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_30__session_loop > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_30__session_loop[--__pyx_freecount_7pyfuse3___pyx_scope_struct_30__session_loop]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__session_loop(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__session_loop) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_nursery); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_30__session_loop < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_30__session_loop[__pyx_freecount_7pyfuse3___pyx_scope_struct_30__session_loop++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_30__session_loop(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop *)o; if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_nursery) { e = (*v)(p->__pyx_v_nursery, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__session_loop}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_30__session_loop}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__session_loop}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop_spec = { "pyfuse3.__pyx_scope_struct_30__session_loop", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_30__session_loop", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__session_loop), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__session_loop, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_30__session_loop, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_30__session_loop, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *__pyx_freelist_7pyfuse3___pyx_scope_struct_31_main[8]; static int __pyx_freecount_7pyfuse3___pyx_scope_struct_31_main = 0; static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_31_main(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_31_main > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main)))) { o = (PyObject*)__pyx_freelist_7pyfuse3___pyx_scope_struct_31_main[--__pyx_freecount_7pyfuse3___pyx_scope_struct_31_main]; memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31_main(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31_main) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_nursery); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); Py_CLEAR(p->__pyx_t_3); Py_CLEAR(p->__pyx_t_4); Py_CLEAR(p->__pyx_t_5); Py_CLEAR(p->__pyx_t_6); Py_CLEAR(p->__pyx_t_7); if (CYTHON_COMPILING_IN_CPYTHON && ((int)(__pyx_freecount_7pyfuse3___pyx_scope_struct_31_main < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main)))) { __pyx_freelist_7pyfuse3___pyx_scope_struct_31_main[__pyx_freecount_7pyfuse3___pyx_scope_struct_31_main++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_31_main(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main *)o; if (p->__pyx_v_nursery) { e = (*v)(p->__pyx_v_nursery, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_t_3) { e = (*v)(p->__pyx_t_3, a); if (e) return e; } if (p->__pyx_t_4) { e = (*v)(p->__pyx_t_4, a); if (e) return e; } if (p->__pyx_t_5) { e = (*v)(p->__pyx_t_5, a); if (e) return e; } if (p->__pyx_t_6) { e = (*v)(p->__pyx_t_6, a); if (e) return e; } if (p->__pyx_t_7) { e = (*v)(p->__pyx_t_7, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_31_main_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31_main}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_31_main}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_31_main}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_31_main_spec = { "pyfuse3.__pyx_scope_struct_31_main", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, __pyx_type_7pyfuse3___pyx_scope_struct_31_main_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_31_main = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.""__pyx_scope_struct_31_main", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31_main), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31_main, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_31_main, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_31_main, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyMethodDef __pyx_methods[] = { {0, 0, 0, 0} }; #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif /* #### Code section: pystring_table ### */ static int __Pyx_CreateStringTabAndInitStrings(void) { __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_u_Calling_fuse_session_destroy, __pyx_k_Calling_fuse_session_destroy, sizeof(__pyx_k_Calling_fuse_session_destroy), 0, 1, 0, 0}, {&__pyx_kp_u_Calling_fuse_session_mount, __pyx_k_Calling_fuse_session_mount, sizeof(__pyx_k_Calling_fuse_session_mount), 0, 1, 0, 0}, {&__pyx_kp_u_Calling_fuse_session_new, __pyx_k_Calling_fuse_session_new, sizeof(__pyx_k_Calling_fuse_session_new), 0, 1, 0, 0}, {&__pyx_kp_u_Calling_fuse_session_unmount, __pyx_k_Calling_fuse_session_unmount, sizeof(__pyx_k_Calling_fuse_session_unmount), 0, 1, 0, 0}, {&__pyx_n_s_ClosedResourceError, __pyx_k_ClosedResourceError, sizeof(__pyx_k_ClosedResourceError), 0, 0, 1, 1}, {&__pyx_n_s_Container, __pyx_k_Container, sizeof(__pyx_k_Container), 0, 0, 1, 1}, {&__pyx_n_s_Container___reduce_cython, __pyx_k_Container___reduce_cython, sizeof(__pyx_k_Container___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_Container___setstate_cython, __pyx_k_Container___setstate_cython, sizeof(__pyx_k_Container___setstate_cython), 0, 0, 1, 1}, {&__pyx_n_u_ENOATTR, __pyx_k_ENOATTR, sizeof(__pyx_k_ENOATTR), 0, 1, 0, 1}, {&__pyx_n_s_EntryAttributes, __pyx_k_EntryAttributes, sizeof(__pyx_k_EntryAttributes), 0, 0, 1, 1}, {&__pyx_n_s_EntryAttributes___getstate, __pyx_k_EntryAttributes___getstate, sizeof(__pyx_k_EntryAttributes___getstate), 0, 0, 1, 1}, {&__pyx_n_s_EntryAttributes___reduce_cython, __pyx_k_EntryAttributes___reduce_cython, sizeof(__pyx_k_EntryAttributes___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_EntryAttributes___setstate, __pyx_k_EntryAttributes___setstate, sizeof(__pyx_k_EntryAttributes___setstate), 0, 0, 1, 1}, {&__pyx_n_s_EntryAttributes___setstate_cytho, __pyx_k_EntryAttributes___setstate_cytho, sizeof(__pyx_k_EntryAttributes___setstate_cytho), 0, 0, 1, 1}, {&__pyx_n_s_FUSEError, __pyx_k_FUSEError, sizeof(__pyx_k_FUSEError), 0, 0, 1, 1}, {&__pyx_n_s_FUSEError___reduce_cython, __pyx_k_FUSEError___reduce_cython, sizeof(__pyx_k_FUSEError___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_FUSEError___setstate_cython, __pyx_k_FUSEError___setstate_cython, sizeof(__pyx_k_FUSEError___setstate_cython), 0, 0, 1, 1}, {&__pyx_kp_u_FUSE_fd_about_to_be_closed, __pyx_k_FUSE_fd_about_to_be_closed, sizeof(__pyx_k_FUSE_fd_about_to_be_closed), 0, 1, 0, 0}, {&__pyx_kp_u_FUSE_session_exit_flag_set_while, __pyx_k_FUSE_session_exit_flag_set_while, sizeof(__pyx_k_FUSE_session_exit_flag_set_while), 0, 1, 0, 0}, {&__pyx_kp_u_Failed_to_submit_invalidate_entr, __pyx_k_Failed_to_submit_invalidate_entr, sizeof(__pyx_k_Failed_to_submit_invalidate_entr), 0, 1, 0, 0}, {&__pyx_n_s_FileHandleT, __pyx_k_FileHandleT, sizeof(__pyx_k_FileHandleT), 0, 0, 1, 1}, {&__pyx_n_s_FileInfo, __pyx_k_FileInfo, sizeof(__pyx_k_FileInfo), 0, 0, 1, 1}, {&__pyx_n_s_FileInfo___reduce_cython, __pyx_k_FileInfo___reduce_cython, sizeof(__pyx_k_FileInfo___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_FileInfo___setstate_cython, __pyx_k_FileInfo___setstate_cython, sizeof(__pyx_k_FileInfo___setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_FileNameT, __pyx_k_FileNameT, sizeof(__pyx_k_FileNameT), 0, 0, 1, 1}, {&__pyx_n_s_FileNotFoundError, __pyx_k_FileNotFoundError, sizeof(__pyx_k_FileNotFoundError), 0, 0, 1, 1}, {&__pyx_n_s_FlagT, __pyx_k_FlagT, sizeof(__pyx_k_FlagT), 0, 0, 1, 1}, {&__pyx_kp_u_Groups, __pyx_k_Groups, sizeof(__pyx_k_Groups), 0, 1, 0, 0}, {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0}, {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_k_Incompatible_checksums_0x_x_vs_0_2, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_2), 0, 0, 1, 0}, {&__pyx_kp_u_Initializing_pyfuse3, __pyx_k_Initializing_pyfuse3, sizeof(__pyx_k_Initializing_pyfuse3), 0, 1, 0, 0}, {&__pyx_n_s_InodeT, __pyx_k_InodeT, sizeof(__pyx_k_InodeT), 0, 0, 1, 1}, {&__pyx_kp_u_Kernel_too_old_pyfuse3_requires, __pyx_k_Kernel_too_old_pyfuse3_requires, sizeof(__pyx_k_Kernel_too_old_pyfuse3_requires), 0, 1, 0, 0}, {&__pyx_n_s_Lock, __pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 0, 1, 1}, {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, {&__pyx_n_s_ModeT, __pyx_k_ModeT, sizeof(__pyx_k_ModeT), 0, 0, 1, 1}, {&__pyx_n_s_NANOS_PER_SEC, __pyx_k_NANOS_PER_SEC, sizeof(__pyx_k_NANOS_PER_SEC), 0, 0, 1, 1}, {&__pyx_kp_u_Need_to_call_init_before_main, __pyx_k_Need_to_call_init_before_main, sizeof(__pyx_k_Need_to_call_init_before_main), 0, 1, 0, 0}, {&__pyx_n_s_OSError, __pyx_k_OSError, sizeof(__pyx_k_OSError), 0, 0, 1, 1}, {&__pyx_n_s_O_DIRECTORY, __pyx_k_O_DIRECTORY, sizeof(__pyx_k_O_DIRECTORY), 0, 0, 1, 1}, {&__pyx_n_s_Operations, __pyx_k_Operations, sizeof(__pyx_k_Operations), 0, 0, 1, 1}, {&__pyx_n_s_OverflowError, __pyx_k_OverflowError, sizeof(__pyx_k_OverflowError), 0, 0, 1, 1}, {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_PicklingError, __pyx_k_PicklingError, sizeof(__pyx_k_PicklingError), 0, 0, 1, 1}, {&__pyx_n_s_Queue, __pyx_k_Queue, sizeof(__pyx_k_Queue), 0, 0, 1, 1}, {&__pyx_n_u_RENAME_EXCHANGE, __pyx_k_RENAME_EXCHANGE, sizeof(__pyx_k_RENAME_EXCHANGE), 0, 1, 0, 1}, {&__pyx_n_u_RENAME_NOREPLACE, __pyx_k_RENAME_NOREPLACE, sizeof(__pyx_k_RENAME_NOREPLACE), 0, 1, 0, 1}, {&__pyx_n_s_ROOT_INODE, __pyx_k_ROOT_INODE, sizeof(__pyx_k_ROOT_INODE), 0, 0, 1, 1}, {&__pyx_n_s_ReaddirToken, __pyx_k_ReaddirToken, sizeof(__pyx_k_ReaddirToken), 0, 0, 1, 1}, {&__pyx_n_s_ReaddirToken___reduce_cython, __pyx_k_ReaddirToken___reduce_cython, sizeof(__pyx_k_ReaddirToken___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_ReaddirToken___setstate_cython, __pyx_k_ReaddirToken___setstate_cython, sizeof(__pyx_k_ReaddirToken___setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_RequestContext, __pyx_k_RequestContext, sizeof(__pyx_k_RequestContext), 0, 0, 1, 1}, {&__pyx_n_s_RequestContext___getstate, __pyx_k_RequestContext___getstate, sizeof(__pyx_k_RequestContext___getstate), 0, 0, 1, 1}, {&__pyx_n_s_RequestContext___reduce_cython, __pyx_k_RequestContext___reduce_cython, sizeof(__pyx_k_RequestContext___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_RequestContext___setstate_cython, __pyx_k_RequestContext___setstate_cython, sizeof(__pyx_k_RequestContext___setstate_cython), 0, 0, 1, 1}, {&__pyx_kp_u_RequestContext_instances_can_t_b, __pyx_k_RequestContext_instances_can_t_b, sizeof(__pyx_k_RequestContext_instances_can_t_b), 0, 1, 0, 0}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s_SetattrFields, __pyx_k_SetattrFields, sizeof(__pyx_k_SetattrFields), 0, 0, 1, 1}, {&__pyx_n_s_SetattrFields___getstate, __pyx_k_SetattrFields___getstate, sizeof(__pyx_k_SetattrFields___getstate), 0, 0, 1, 1}, {&__pyx_n_s_SetattrFields___reduce_cython, __pyx_k_SetattrFields___reduce_cython, sizeof(__pyx_k_SetattrFields___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_SetattrFields___setstate_cython, __pyx_k_SetattrFields___setstate_cython, sizeof(__pyx_k_SetattrFields___setstate_cython), 0, 0, 1, 1}, {&__pyx_kp_u_SetattrFields_instances_can_t_be, __pyx_k_SetattrFields_instances_can_t_be, sizeof(__pyx_k_SetattrFields_instances_can_t_be), 0, 1, 0, 0}, {&__pyx_kp_u_Starting_notify_worker, __pyx_k_Starting_notify_worker, sizeof(__pyx_k_Starting_notify_worker), 0, 1, 0, 0}, {&__pyx_n_s_StatvfsData, __pyx_k_StatvfsData, sizeof(__pyx_k_StatvfsData), 0, 0, 1, 1}, {&__pyx_n_s_StatvfsData___getstate, __pyx_k_StatvfsData___getstate, sizeof(__pyx_k_StatvfsData___getstate), 0, 0, 1, 1}, {&__pyx_n_s_StatvfsData___reduce_cython, __pyx_k_StatvfsData___reduce_cython, sizeof(__pyx_k_StatvfsData___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_StatvfsData___setstate, __pyx_k_StatvfsData___setstate, sizeof(__pyx_k_StatvfsData___setstate), 0, 0, 1, 1}, {&__pyx_n_s_StatvfsData___setstate_cython, __pyx_k_StatvfsData___setstate_cython, sizeof(__pyx_k_StatvfsData___setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_TYPE_CHECKING, __pyx_k_TYPE_CHECKING, sizeof(__pyx_k_TYPE_CHECKING), 0, 0, 1, 1}, {&__pyx_n_s_Thread, __pyx_k_Thread, sizeof(__pyx_k_Thread), 0, 0, 1, 1}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_kp_u_Unable_to_parse_s, __pyx_k_Unable_to_parse_s, sizeof(__pyx_k_Unable_to_parse_s), 0, 1, 0, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_kp_u_Value_too_long_to_convert_to_Pyt, __pyx_k_Value_too_long_to_convert_to_Pyt, sizeof(__pyx_k_Value_too_long_to_convert_to_Pyt), 0, 1, 0, 0}, {&__pyx_n_s_WorkerData, __pyx_k_WorkerData, sizeof(__pyx_k_WorkerData), 0, 0, 1, 1}, {&__pyx_n_s_WorkerData___reduce_cython, __pyx_k_WorkerData___reduce_cython, sizeof(__pyx_k_WorkerData___reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_WorkerData___setstate_cython, __pyx_k_WorkerData___setstate_cython, sizeof(__pyx_k_WorkerData___setstate_cython), 0, 0, 1, 1}, {&__pyx_kp_b__29, __pyx_k__29, sizeof(__pyx_k__29), 0, 0, 0, 0}, {&__pyx_kp_u__47, __pyx_k__47, sizeof(__pyx_k__47), 0, 1, 0, 0}, {&__pyx_n_s__49, __pyx_k__49, sizeof(__pyx_k__49), 0, 0, 1, 1}, {&__pyx_n_s__50, __pyx_k__50, sizeof(__pyx_k__50), 0, 0, 1, 1}, {&__pyx_n_s_abspath, __pyx_k_abspath, sizeof(__pyx_k_abspath), 0, 0, 1, 1}, {&__pyx_n_s_access, __pyx_k_access, sizeof(__pyx_k_access), 0, 0, 1, 1}, {&__pyx_n_s_aenter, __pyx_k_aenter, sizeof(__pyx_k_aenter), 0, 0, 1, 1}, {&__pyx_n_s_aexit, __pyx_k_aexit, sizeof(__pyx_k_aexit), 0, 0, 1, 1}, {&__pyx_n_s_allowed, __pyx_k_allowed, sizeof(__pyx_k_allowed), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_s_async_wrapper, __pyx_k_async_wrapper, sizeof(__pyx_k_async_wrapper), 0, 0, 1, 1}, {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, {&__pyx_n_s_attr, __pyx_k_attr, sizeof(__pyx_k_attr), 0, 0, 1, 1}, {&__pyx_n_s_attr_only, __pyx_k_attr_only, sizeof(__pyx_k_attr_only), 0, 0, 1, 1}, {&__pyx_n_u_attr_timeout, __pyx_k_attr_timeout, sizeof(__pyx_k_attr_timeout), 0, 1, 0, 1}, {&__pyx_n_s_await, __pyx_k_await, sizeof(__pyx_k_await), 0, 0, 1, 1}, {&__pyx_n_s_buf, __pyx_k_buf, sizeof(__pyx_k_buf), 0, 0, 1, 1}, {&__pyx_n_s_bufsize, __pyx_k_bufsize, sizeof(__pyx_k_bufsize), 0, 0, 1, 1}, {&__pyx_n_s_bufvec, __pyx_k_bufvec, sizeof(__pyx_k_bufvec), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_s_cbuf, __pyx_k_cbuf, sizeof(__pyx_k_cbuf), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, {&__pyx_n_s_cname, __pyx_k_cname, sizeof(__pyx_k_cname), 0, 0, 1, 1}, {&__pyx_n_s_cnamespace, __pyx_k_cnamespace, sizeof(__pyx_k_cnamespace), 0, 0, 1, 1}, {&__pyx_n_s_cpath, __pyx_k_cpath, sizeof(__pyx_k_cpath), 0, 0, 1, 1}, {&__pyx_n_s_create, __pyx_k_create, sizeof(__pyx_k_create), 0, 0, 1, 1}, {&__pyx_n_s_ctx, __pyx_k_ctx, sizeof(__pyx_k_ctx), 0, 0, 1, 1}, {&__pyx_n_s_current_task, __pyx_k_current_task, sizeof(__pyx_k_current_task), 0, 0, 1, 1}, {&__pyx_n_s_current_trio_token, __pyx_k_current_trio_token, sizeof(__pyx_k_current_trio_token), 0, 0, 1, 1}, {&__pyx_n_s_cvalue, __pyx_k_cvalue, sizeof(__pyx_k_cvalue), 0, 0, 1, 1}, {&__pyx_n_s_daemon, __pyx_k_daemon, sizeof(__pyx_k_daemon), 0, 0, 1, 1}, {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1}, {&__pyx_n_s_debug, __pyx_k_debug, sizeof(__pyx_k_debug), 0, 0, 1, 1}, {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, {&__pyx_n_s_default_options, __pyx_k_default_options, sizeof(__pyx_k_default_options), 0, 0, 1, 1}, {&__pyx_n_u_default_permissions, __pyx_k_default_permissions, sizeof(__pyx_k_default_permissions), 0, 1, 0, 1}, {&__pyx_n_s_deleted, __pyx_k_deleted, sizeof(__pyx_k_deleted), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_n_s_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1}, {&__pyx_n_s_direct_io, __pyx_k_direct_io, sizeof(__pyx_k_direct_io), 0, 0, 1, 1}, {&__pyx_n_s_dirp, __pyx_k_dirp, sizeof(__pyx_k_dirp), 0, 0, 1, 1}, {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0}, {&__pyx_n_s_e, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1}, {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0}, {&__pyx_n_s_enable_acl, __pyx_k_enable_acl, sizeof(__pyx_k_enable_acl), 0, 0, 1, 1}, {&__pyx_n_s_enable_writeback_cache, __pyx_k_enable_writeback_cache, sizeof(__pyx_k_enable_writeback_cache), 0, 0, 1, 1}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1}, {&__pyx_n_s_entry, __pyx_k_entry, sizeof(__pyx_k_entry), 0, 0, 1, 1}, {&__pyx_n_u_entry_timeout, __pyx_k_entry_timeout, sizeof(__pyx_k_entry_timeout), 0, 1, 0, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_errno, __pyx_k_errno, sizeof(__pyx_k_errno), 0, 0, 1, 1}, {&__pyx_kp_u_errno_d, __pyx_k_errno_d, sizeof(__pyx_k_errno_d), 0, 1, 0, 0}, {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_exc, __pyx_k_exc, sizeof(__pyx_k_exc), 0, 0, 1, 1}, {&__pyx_n_s_exception, __pyx_k_exception, sizeof(__pyx_k_exception), 0, 0, 1, 1}, {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1}, {&__pyx_n_s_f_args, __pyx_k_f_args, sizeof(__pyx_k_f_args), 0, 0, 1, 1}, {&__pyx_n_u_f_bavail, __pyx_k_f_bavail, sizeof(__pyx_k_f_bavail), 0, 1, 0, 1}, {&__pyx_n_u_f_bfree, __pyx_k_f_bfree, sizeof(__pyx_k_f_bfree), 0, 1, 0, 1}, {&__pyx_n_u_f_blocks, __pyx_k_f_blocks, sizeof(__pyx_k_f_blocks), 0, 1, 0, 1}, {&__pyx_n_u_f_bsize, __pyx_k_f_bsize, sizeof(__pyx_k_f_bsize), 0, 1, 0, 1}, {&__pyx_n_u_f_favail, __pyx_k_f_favail, sizeof(__pyx_k_f_favail), 0, 1, 0, 1}, {&__pyx_n_u_f_ffree, __pyx_k_f_ffree, sizeof(__pyx_k_f_ffree), 0, 1, 0, 1}, {&__pyx_n_u_f_files, __pyx_k_f_files, sizeof(__pyx_k_f_files), 0, 1, 0, 1}, {&__pyx_n_u_f_frsize, __pyx_k_f_frsize, sizeof(__pyx_k_f_frsize), 0, 1, 0, 1}, {&__pyx_n_u_f_namemax, __pyx_k_f_namemax, sizeof(__pyx_k_f_namemax), 0, 1, 0, 1}, {&__pyx_n_s_fd, __pyx_k_fd, sizeof(__pyx_k_fd), 0, 0, 1, 1}, {&__pyx_n_s_fh, __pyx_k_fh, sizeof(__pyx_k_fh), 0, 0, 1, 1}, {&__pyx_n_s_fi, __pyx_k_fi, sizeof(__pyx_k_fi), 0, 0, 1, 1}, {&__pyx_n_s_fields, __pyx_k_fields, sizeof(__pyx_k_fields), 0, 0, 1, 1}, {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, {&__pyx_n_s_flush, __pyx_k_flush, sizeof(__pyx_k_flush), 0, 0, 1, 1}, {&__pyx_n_s_forget, __pyx_k_forget, sizeof(__pyx_k_forget), 0, 0, 1, 1}, {&__pyx_n_s_fse, __pyx_k_fse, sizeof(__pyx_k_fse), 0, 0, 1, 1}, {&__pyx_n_s_fsync, __pyx_k_fsync, sizeof(__pyx_k_fsync), 0, 0, 1, 1}, {&__pyx_n_s_fsyncdir, __pyx_k_fsyncdir, sizeof(__pyx_k_fsyncdir), 0, 0, 1, 1}, {&__pyx_n_s_fuse_access_async, __pyx_k_fuse_access_async, sizeof(__pyx_k_fuse_access_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_access_fuse_reply__failed_w, __pyx_k_fuse_access_fuse_reply__failed_w, sizeof(__pyx_k_fuse_access_fuse_reply__failed_w), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_buf_copy_failed_with, __pyx_k_fuse_buf_copy_failed_with, sizeof(__pyx_k_fuse_buf_copy_failed_with), 0, 1, 0, 0}, {&__pyx_n_s_fuse_create_async, __pyx_k_fuse_create_async, sizeof(__pyx_k_fuse_create_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_create_fuse_reply__failed_w, __pyx_k_fuse_create_fuse_reply__failed_w, sizeof(__pyx_k_fuse_create_fuse_reply__failed_w), 0, 1, 0, 0}, {&__pyx_n_s_fuse_flush_async, __pyx_k_fuse_flush_async, sizeof(__pyx_k_fuse_flush_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_flush_fuse_reply__failed_wi, __pyx_k_fuse_flush_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_flush_fuse_reply__failed_wi), 0, 1, 0, 0}, {&__pyx_n_s_fuse_fsync_async, __pyx_k_fuse_fsync_async, sizeof(__pyx_k_fuse_fsync_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi, __pyx_k_fuse_fsync_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_fsync_fuse_reply__failed_wi), 0, 1, 0, 0}, {&__pyx_n_s_fuse_fsyncdir_async, __pyx_k_fuse_fsyncdir_async, sizeof(__pyx_k_fuse_fsyncdir_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed, __pyx_k_fuse_fsyncdir_fuse_reply__failed, sizeof(__pyx_k_fuse_fsyncdir_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_getattr_async, __pyx_k_fuse_getattr_async, sizeof(__pyx_k_fuse_getattr_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_getattr_fuse_reply__failed, __pyx_k_fuse_getattr_fuse_reply__failed, sizeof(__pyx_k_fuse_getattr_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_getxattr_async, __pyx_k_fuse_getxattr_async, sizeof(__pyx_k_fuse_getxattr_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_getxattr_fuse_reply__failed, __pyx_k_fuse_getxattr_fuse_reply__failed, sizeof(__pyx_k_fuse_getxattr_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_link_async, __pyx_k_fuse_link_async, sizeof(__pyx_k_fuse_link_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_link_fuse_reply__failed_wit, __pyx_k_fuse_link_fuse_reply__failed_wit, sizeof(__pyx_k_fuse_link_fuse_reply__failed_wit), 0, 1, 0, 0}, {&__pyx_n_s_fuse_listxattr_async, __pyx_k_fuse_listxattr_async, sizeof(__pyx_k_fuse_listxattr_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_listxattr_fuse_reply__faile, __pyx_k_fuse_listxattr_fuse_reply__faile, sizeof(__pyx_k_fuse_listxattr_fuse_reply__faile), 0, 1, 0, 0}, {&__pyx_n_s_fuse_lookup_async, __pyx_k_fuse_lookup_async, sizeof(__pyx_k_fuse_lookup_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_lookup_fuse_reply__failed_w, __pyx_k_fuse_lookup_fuse_reply__failed_w, sizeof(__pyx_k_fuse_lookup_fuse_reply__failed_w), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_lowlevel_notify_delete_retu, __pyx_k_fuse_lowlevel_notify_delete_retu, sizeof(__pyx_k_fuse_lowlevel_notify_delete_retu), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_lowlevel_notify_inval_entry, __pyx_k_fuse_lowlevel_notify_inval_entry, sizeof(__pyx_k_fuse_lowlevel_notify_inval_entry), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_lowlevel_notify_inval_inode, __pyx_k_fuse_lowlevel_notify_inval_inode, sizeof(__pyx_k_fuse_lowlevel_notify_inval_inode), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_lowlevel_notify_store_retur, __pyx_k_fuse_lowlevel_notify_store_retur, sizeof(__pyx_k_fuse_lowlevel_notify_store_retur), 0, 1, 0, 0}, {&__pyx_n_s_fuse_mkdir_async, __pyx_k_fuse_mkdir_async, sizeof(__pyx_k_fuse_mkdir_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi, __pyx_k_fuse_mkdir_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_mkdir_fuse_reply__failed_wi), 0, 1, 0, 0}, {&__pyx_n_s_fuse_mknod_async, __pyx_k_fuse_mknod_async, sizeof(__pyx_k_fuse_mknod_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi, __pyx_k_fuse_mknod_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_mknod_fuse_reply__failed_wi), 0, 1, 0, 0}, {&__pyx_n_s_fuse_open_async, __pyx_k_fuse_open_async, sizeof(__pyx_k_fuse_open_async), 0, 0, 1, 1}, {&__pyx_n_s_fuse_opendir_async, __pyx_k_fuse_opendir_async, sizeof(__pyx_k_fuse_opendir_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_opendir_fuse_reply__failed, __pyx_k_fuse_opendir_fuse_reply__failed, sizeof(__pyx_k_fuse_opendir_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_read_async, __pyx_k_fuse_read_async, sizeof(__pyx_k_fuse_read_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_read_fuse_reply__failed_wit, __pyx_k_fuse_read_fuse_reply__failed_wit, sizeof(__pyx_k_fuse_read_fuse_reply__failed_wit), 0, 1, 0, 0}, {&__pyx_n_s_fuse_readdirplus_async, __pyx_k_fuse_readdirplus_async, sizeof(__pyx_k_fuse_readdirplus_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_readdirplus_fuse_reply__fai, __pyx_k_fuse_readdirplus_fuse_reply__fai, sizeof(__pyx_k_fuse_readdirplus_fuse_reply__fai), 0, 1, 0, 0}, {&__pyx_n_s_fuse_readlink_async, __pyx_k_fuse_readlink_async, sizeof(__pyx_k_fuse_readlink_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_readlink_fuse_reply__failed, __pyx_k_fuse_readlink_fuse_reply__failed, sizeof(__pyx_k_fuse_readlink_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_release_async, __pyx_k_fuse_release_async, sizeof(__pyx_k_fuse_release_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_release_fuse_reply__failed, __pyx_k_fuse_release_fuse_reply__failed, sizeof(__pyx_k_fuse_release_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_releasedir_async, __pyx_k_fuse_releasedir_async, sizeof(__pyx_k_fuse_releasedir_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_releasedir_fuse_reply__fail, __pyx_k_fuse_releasedir_fuse_reply__fail, sizeof(__pyx_k_fuse_releasedir_fuse_reply__fail), 0, 1, 0, 0}, {&__pyx_n_s_fuse_removexattr_async, __pyx_k_fuse_removexattr_async, sizeof(__pyx_k_fuse_removexattr_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_removexattr_fuse_reply__fai, __pyx_k_fuse_removexattr_fuse_reply__fai, sizeof(__pyx_k_fuse_removexattr_fuse_reply__fai), 0, 1, 0, 0}, {&__pyx_n_s_fuse_rename_async, __pyx_k_fuse_rename_async, sizeof(__pyx_k_fuse_rename_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_rename_fuse_reply__failed_w, __pyx_k_fuse_rename_fuse_reply__failed_w, sizeof(__pyx_k_fuse_rename_fuse_reply__failed_w), 0, 1, 0, 0}, {&__pyx_n_s_fuse_rmdir_async, __pyx_k_fuse_rmdir_async, sizeof(__pyx_k_fuse_rmdir_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi, __pyx_k_fuse_rmdir_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_rmdir_fuse_reply__failed_wi), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_session_mount_failed, __pyx_k_fuse_session_mount_failed, sizeof(__pyx_k_fuse_session_mount_failed), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_session_new_failed, __pyx_k_fuse_session_new_failed, sizeof(__pyx_k_fuse_session_new_failed), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_session_receive_buf_failed, __pyx_k_fuse_session_receive_buf_failed, sizeof(__pyx_k_fuse_session_receive_buf_failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_setattr_async, __pyx_k_fuse_setattr_async, sizeof(__pyx_k_fuse_setattr_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK, __pyx_k_fuse_setattr_clock_gettime_CLOCK, sizeof(__pyx_k_fuse_setattr_clock_gettime_CLOCK), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_setattr_fuse_reply__failed, __pyx_k_fuse_setattr_fuse_reply__failed, sizeof(__pyx_k_fuse_setattr_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_setxattr_async, __pyx_k_fuse_setxattr_async, sizeof(__pyx_k_fuse_setxattr_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_setxattr_fuse_reply__failed, __pyx_k_fuse_setxattr_fuse_reply__failed, sizeof(__pyx_k_fuse_setxattr_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_u_fuse_stacktrace, __pyx_k_fuse_stacktrace, sizeof(__pyx_k_fuse_stacktrace), 0, 1, 0, 1}, {&__pyx_n_s_fuse_statfs_async, __pyx_k_fuse_statfs_async, sizeof(__pyx_k_fuse_statfs_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_statfs_fuse_reply__failed_w, __pyx_k_fuse_statfs_fuse_reply__failed_w, sizeof(__pyx_k_fuse_statfs_fuse_reply__failed_w), 0, 1, 0, 0}, {&__pyx_n_s_fuse_symlink_async, __pyx_k_fuse_symlink_async, sizeof(__pyx_k_fuse_symlink_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_symlink_fuse_reply__failed, __pyx_k_fuse_symlink_fuse_reply__failed, sizeof(__pyx_k_fuse_symlink_fuse_reply__failed), 0, 1, 0, 0}, {&__pyx_n_s_fuse_unlink_async, __pyx_k_fuse_unlink_async, sizeof(__pyx_k_fuse_unlink_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_unlink_fuse_reply__failed_w, __pyx_k_fuse_unlink_fuse_reply__failed_w, sizeof(__pyx_k_fuse_unlink_fuse_reply__failed_w), 0, 1, 0, 0}, {&__pyx_n_s_fuse_write_async, __pyx_k_fuse_write_async, sizeof(__pyx_k_fuse_write_async), 0, 0, 1, 1}, {&__pyx_n_s_fuse_write_buf_async, __pyx_k_fuse_write_buf_async, sizeof(__pyx_k_fuse_write_buf_async), 0, 0, 1, 1}, {&__pyx_kp_u_fuse_write_buf_fuse_reply__faile, __pyx_k_fuse_write_buf_fuse_reply__faile, sizeof(__pyx_k_fuse_write_buf_fuse_reply__faile), 0, 1, 0, 0}, {&__pyx_kp_u_fuse_write_fuse_reply__failed_wi, __pyx_k_fuse_write_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_write_fuse_reply__failed_wi), 0, 1, 0, 0}, {&__pyx_n_s_g, __pyx_k_g, sizeof(__pyx_k_g), 0, 0, 1, 1}, {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0}, {&__pyx_n_u_generation, __pyx_k_generation, sizeof(__pyx_k_generation), 0, 1, 0, 1}, {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1}, {&__pyx_n_s_getLogger, __pyx_k_getLogger, sizeof(__pyx_k_getLogger), 0, 0, 1, 1}, {&__pyx_n_s_get_sup_groups, __pyx_k_get_sup_groups, sizeof(__pyx_k_get_sup_groups), 0, 0, 1, 1}, {&__pyx_n_s_getattr, __pyx_k_getattr, sizeof(__pyx_k_getattr), 0, 0, 1, 1}, {&__pyx_n_s_getfilesystemencoding, __pyx_k_getfilesystemencoding, sizeof(__pyx_k_getfilesystemencoding), 0, 0, 1, 1}, {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, {&__pyx_n_s_getxattr, __pyx_k_getxattr, sizeof(__pyx_k_getxattr), 0, 0, 1, 1}, {&__pyx_n_s_gids, __pyx_k_gids, sizeof(__pyx_k_gids), 0, 0, 1, 1}, {&__pyx_n_s_ignore_enoent, __pyx_k_ignore_enoent, sizeof(__pyx_k_ignore_enoent), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, {&__pyx_n_s_ino, __pyx_k_ino, sizeof(__pyx_k_ino), 0, 0, 1, 1}, {&__pyx_n_s_inode, __pyx_k_inode, sizeof(__pyx_k_inode), 0, 0, 1, 1}, {&__pyx_n_s_inode_p, __pyx_k_inode_p, sizeof(__pyx_k_inode_p), 0, 0, 1, 1}, {&__pyx_n_s_invalidate_entry, __pyx_k_invalidate_entry, sizeof(__pyx_k_invalidate_entry), 0, 0, 1, 1}, {&__pyx_n_s_invalidate_entry_async, __pyx_k_invalidate_entry_async, sizeof(__pyx_k_invalidate_entry_async), 0, 0, 1, 1}, {&__pyx_n_s_invalidate_inode, __pyx_k_invalidate_inode, sizeof(__pyx_k_invalidate_inode), 0, 0, 1, 1}, {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0}, {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1}, {&__pyx_n_s_keep_cache, __pyx_k_keep_cache, sizeof(__pyx_k_keep_cache), 0, 0, 1, 1}, {&__pyx_n_s_len, __pyx_k_len, sizeof(__pyx_k_len), 0, 0, 1, 1}, {&__pyx_n_s_len_s, __pyx_k_len_s, sizeof(__pyx_k_len_s), 0, 0, 1, 1}, {&__pyx_n_s_line, __pyx_k_line, sizeof(__pyx_k_line), 0, 0, 1, 1}, {&__pyx_n_s_link, __pyx_k_link, sizeof(__pyx_k_link), 0, 0, 1, 1}, {&__pyx_n_s_listdir, __pyx_k_listdir, sizeof(__pyx_k_listdir), 0, 0, 1, 1}, {&__pyx_n_s_listxattr, __pyx_k_listxattr, sizeof(__pyx_k_listxattr), 0, 0, 1, 1}, {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1}, {&__pyx_n_s_logging, __pyx_k_logging, sizeof(__pyx_k_logging), 0, 0, 1, 1}, {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1}, {&__pyx_n_s_lowlevel, __pyx_k_lowlevel, sizeof(__pyx_k_lowlevel), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_main_2, __pyx_k_main_2, sizeof(__pyx_k_main_2), 0, 0, 1, 1}, {&__pyx_n_s_mask, __pyx_k_mask, sizeof(__pyx_k_mask), 0, 0, 1, 1}, {&__pyx_n_s_max_tasks, __pyx_k_max_tasks, sizeof(__pyx_k_max_tasks), 0, 0, 1, 1}, {&__pyx_n_s_min_tasks, __pyx_k_min_tasks, sizeof(__pyx_k_min_tasks), 0, 0, 1, 1}, {&__pyx_n_s_mkdir, __pyx_k_mkdir, sizeof(__pyx_k_mkdir), 0, 0, 1, 1}, {&__pyx_n_s_mknod, __pyx_k_mknod, sizeof(__pyx_k_mknod), 0, 0, 1, 1}, {&__pyx_n_s_mountpoint, __pyx_k_mountpoint, sizeof(__pyx_k_mountpoint), 0, 0, 1, 1}, {&__pyx_kp_u_mountpoint__argument_must_be_of, __pyx_k_mountpoint__argument_must_be_of, sizeof(__pyx_k_mountpoint__argument_must_be_of), 0, 1, 0, 0}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_kp_u_name_argument_must_be_of_type_s, __pyx_k_name_argument_must_be_of_type_s, sizeof(__pyx_k_name_argument_must_be_of_type_s), 0, 1, 0, 0}, {&__pyx_n_s_name_b, __pyx_k_name_b, sizeof(__pyx_k_name_b), 0, 0, 1, 1}, {&__pyx_n_s_names, __pyx_k_names, sizeof(__pyx_k_names), 0, 0, 1, 1}, {&__pyx_n_s_namespace, __pyx_k_namespace, sizeof(__pyx_k_namespace), 0, 0, 1, 1}, {&__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_k_namespace_parameter_must_be_sys, sizeof(__pyx_k_namespace_parameter_must_be_sys), 0, 1, 0, 0}, {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, {&__pyx_n_s_newname, __pyx_k_newname, sizeof(__pyx_k_newname), 0, 0, 1, 1}, {&__pyx_n_s_newparent, __pyx_k_newparent, sizeof(__pyx_k_newparent), 0, 0, 1, 1}, {&__pyx_n_s_next_id, __pyx_k_next_id, sizeof(__pyx_k_next_id), 0, 0, 1, 1}, {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, {&__pyx_n_s_nonseekable, __pyx_k_nonseekable, sizeof(__pyx_k_nonseekable), 0, 0, 1, 1}, {&__pyx_n_s_notify_closing, __pyx_k_notify_closing, sizeof(__pyx_k_notify_closing), 0, 0, 1, 1}, {&__pyx_n_s_notify_loop, __pyx_k_notify_loop, sizeof(__pyx_k_notify_loop), 0, 0, 1, 1}, {&__pyx_n_s_notify_store, __pyx_k_notify_store, sizeof(__pyx_k_notify_store), 0, 0, 1, 1}, {&__pyx_n_s_now, __pyx_k_now, sizeof(__pyx_k_now), 0, 0, 1, 1}, {&__pyx_n_s_nursery, __pyx_k_nursery, sizeof(__pyx_k_nursery), 0, 0, 1, 1}, {&__pyx_kp_b_o, __pyx_k_o, sizeof(__pyx_k_o), 0, 0, 0, 0}, {&__pyx_n_s_off, __pyx_k_off, sizeof(__pyx_k_off), 0, 0, 1, 1}, {&__pyx_n_s_offset, __pyx_k_offset, sizeof(__pyx_k_offset), 0, 0, 1, 1}, {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, {&__pyx_n_s_open_nursery, __pyx_k_open_nursery, sizeof(__pyx_k_open_nursery), 0, 0, 1, 1}, {&__pyx_n_s_opendir, __pyx_k_opendir, sizeof(__pyx_k_opendir), 0, 0, 1, 1}, {&__pyx_n_s_ops, __pyx_k_ops, sizeof(__pyx_k_ops), 0, 0, 1, 1}, {&__pyx_n_s_options, __pyx_k_options, sizeof(__pyx_k_options), 0, 0, 1, 1}, {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1}, {&__pyx_n_s_os_path, __pyx_k_os_path, sizeof(__pyx_k_os_path), 0, 0, 1, 1}, {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1}, {&__pyx_kp_u_path_argument_must_be_of_type_s, __pyx_k_path_argument_must_be_of_type_s, sizeof(__pyx_k_path_argument_must_be_of_type_s), 0, 1, 0, 0}, {&__pyx_n_s_path_b, __pyx_k_path_b, sizeof(__pyx_k_path_b), 0, 0, 1, 1}, {&__pyx_n_s_pbuf, __pyx_k_pbuf, sizeof(__pyx_k_pbuf), 0, 0, 1, 1}, {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, {&__pyx_n_s_pid, __pyx_k_pid, sizeof(__pyx_k_pid), 0, 0, 1, 1}, {&__pyx_kp_u_proc_d_status, __pyx_k_proc_d_status, sizeof(__pyx_k_proc_d_status), 0, 1, 0, 0}, {&__pyx_n_s_put, __pyx_k_put, sizeof(__pyx_k_put), 0, 0, 1, 1}, {&__pyx_kp_u_py_retval_was_not_awaited_please, __pyx_k_py_retval_was_not_awaited_please, sizeof(__pyx_k_py_retval_was_not_awaited_please), 0, 1, 0, 0}, {&__pyx_n_s_pybuf, __pyx_k_pybuf, sizeof(__pyx_k_pybuf), 0, 0, 1, 1}, {&__pyx_n_b_pyfuse3, __pyx_k_pyfuse3, sizeof(__pyx_k_pyfuse3), 0, 0, 0, 1}, {&__pyx_n_s_pyfuse3, __pyx_k_pyfuse3, sizeof(__pyx_k_pyfuse3), 0, 0, 1, 1}, {&__pyx_n_u_pyfuse3, __pyx_k_pyfuse3, sizeof(__pyx_k_pyfuse3), 0, 1, 0, 1}, {&__pyx_n_s_pyfuse3_2, __pyx_k_pyfuse3_2, sizeof(__pyx_k_pyfuse3_2), 0, 0, 1, 1}, {&__pyx_kp_u_pyfuse_02d, __pyx_k_pyfuse_02d, sizeof(__pyx_k_pyfuse_02d), 0, 1, 0, 0}, {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle_RequestContext, __pyx_k_pyx_unpickle_RequestContext, sizeof(__pyx_k_pyx_unpickle_RequestContext), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle__WorkerData, __pyx_k_pyx_unpickle__WorkerData, sizeof(__pyx_k_pyx_unpickle__WorkerData), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_queue, __pyx_k_queue, sizeof(__pyx_k_queue), 0, 0, 1, 1}, {&__pyx_n_u_r, __pyx_k_r, sizeof(__pyx_k_r), 0, 1, 0, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1}, {&__pyx_n_s_readdir, __pyx_k_readdir, sizeof(__pyx_k_readdir), 0, 0, 1, 1}, {&__pyx_n_s_readdir_reply, __pyx_k_readdir_reply, sizeof(__pyx_k_readdir_reply), 0, 0, 1, 1}, {&__pyx_n_s_readlink, __pyx_k_readlink, sizeof(__pyx_k_readlink), 0, 0, 1, 1}, {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, {&__pyx_n_s_release, __pyx_k_release, sizeof(__pyx_k_release), 0, 0, 1, 1}, {&__pyx_n_s_releasedir, __pyx_k_releasedir, sizeof(__pyx_k_releasedir), 0, 0, 1, 1}, {&__pyx_n_s_removexattr, __pyx_k_removexattr, sizeof(__pyx_k_removexattr), 0, 0, 1, 1}, {&__pyx_n_s_rename, __pyx_k_rename, sizeof(__pyx_k_rename), 0, 0, 1, 1}, {&__pyx_n_s_req, __pyx_k_req, sizeof(__pyx_k_req), 0, 0, 1, 1}, {&__pyx_n_s_res, __pyx_k_res, sizeof(__pyx_k_res), 0, 0, 1, 1}, {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1}, {&__pyx_n_s_rmdir, __pyx_k_rmdir, sizeof(__pyx_k_rmdir), 0, 0, 1, 1}, {&__pyx_kp_u_s_No_tasks_waiting_starting_ano, __pyx_k_s_No_tasks_waiting_starting_ano, sizeof(__pyx_k_s_No_tasks_waiting_starting_ano), 0, 1, 0, 0}, {&__pyx_kp_u_s_terminated, __pyx_k_s_terminated, sizeof(__pyx_k_s_terminated), 0, 1, 0, 0}, {&__pyx_kp_u_s_too_many_idle_tasks_d_total_d, __pyx_k_s_too_many_idle_tasks_d_total_d, sizeof(__pyx_k_s_too_many_idle_tasks_d_total_d), 0, 1, 0, 0}, {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, {&__pyx_kp_s_self_req_cannot_be_converted_to, __pyx_k_self_req_cannot_be_converted_to, sizeof(__pyx_k_self_req_cannot_be_converted_to), 0, 0, 1, 0}, {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, {&__pyx_n_s_session_loop, __pyx_k_session_loop, sizeof(__pyx_k_session_loop), 0, 0, 1, 1}, {&__pyx_n_s_setattr, __pyx_k_setattr, sizeof(__pyx_k_setattr), 0, 0, 1, 1}, {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_setxattr, __pyx_k_setxattr, sizeof(__pyx_k_setxattr), 0, 0, 1, 1}, {&__pyx_n_s_size_guess, __pyx_k_size_guess, sizeof(__pyx_k_size_guess), 0, 0, 1, 1}, {&__pyx_n_s_slen, __pyx_k_slen, sizeof(__pyx_k_slen), 0, 0, 1, 1}, {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_kp_s_src_handlers_pxi, __pyx_k_src_handlers_pxi, sizeof(__pyx_k_src_handlers_pxi), 0, 0, 1, 0}, {&__pyx_kp_s_src_internal_pxi, __pyx_k_src_internal_pxi, sizeof(__pyx_k_src_internal_pxi), 0, 0, 1, 0}, {&__pyx_kp_s_src_pyfuse3_pyx, __pyx_k_src_pyfuse3_pyx, sizeof(__pyx_k_src_pyfuse3_pyx), 0, 0, 1, 0}, {&__pyx_n_u_st_atime_ns, __pyx_k_st_atime_ns, sizeof(__pyx_k_st_atime_ns), 0, 1, 0, 1}, {&__pyx_n_u_st_birthtime_ns, __pyx_k_st_birthtime_ns, sizeof(__pyx_k_st_birthtime_ns), 0, 1, 0, 1}, {&__pyx_n_u_st_blksize, __pyx_k_st_blksize, sizeof(__pyx_k_st_blksize), 0, 1, 0, 1}, {&__pyx_n_u_st_blocks, __pyx_k_st_blocks, sizeof(__pyx_k_st_blocks), 0, 1, 0, 1}, {&__pyx_n_u_st_ctime_ns, __pyx_k_st_ctime_ns, sizeof(__pyx_k_st_ctime_ns), 0, 1, 0, 1}, {&__pyx_n_u_st_gid, __pyx_k_st_gid, sizeof(__pyx_k_st_gid), 0, 1, 0, 1}, {&__pyx_n_u_st_ino, __pyx_k_st_ino, sizeof(__pyx_k_st_ino), 0, 1, 0, 1}, {&__pyx_n_u_st_mode, __pyx_k_st_mode, sizeof(__pyx_k_st_mode), 0, 1, 0, 1}, {&__pyx_n_u_st_mtime_ns, __pyx_k_st_mtime_ns, sizeof(__pyx_k_st_mtime_ns), 0, 1, 0, 1}, {&__pyx_n_u_st_nlink, __pyx_k_st_nlink, sizeof(__pyx_k_st_nlink), 0, 1, 0, 1}, {&__pyx_n_u_st_rdev, __pyx_k_st_rdev, sizeof(__pyx_k_st_rdev), 0, 1, 0, 1}, {&__pyx_n_u_st_size, __pyx_k_st_size, sizeof(__pyx_k_st_size), 0, 1, 0, 1}, {&__pyx_n_u_st_uid, __pyx_k_st_uid, sizeof(__pyx_k_st_uid), 0, 1, 0, 1}, {&__pyx_n_s_stacktrace, __pyx_k_stacktrace, sizeof(__pyx_k_stacktrace), 0, 0, 1, 1}, {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, {&__pyx_n_s_start_soon, __pyx_k_start_soon, sizeof(__pyx_k_start_soon), 0, 0, 1, 1}, {&__pyx_n_s_startswith, __pyx_k_startswith, sizeof(__pyx_k_startswith), 0, 0, 1, 1}, {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1}, {&__pyx_n_s_statfs, __pyx_k_statfs, sizeof(__pyx_k_statfs), 0, 0, 1, 1}, {&__pyx_n_s_stats, __pyx_k_stats, sizeof(__pyx_k_stats), 0, 0, 1, 1}, {&__pyx_n_s_strerror, __pyx_k_strerror, sizeof(__pyx_k_strerror), 0, 0, 1, 1}, {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, {&__pyx_n_s_supports_dot_lookup, __pyx_k_supports_dot_lookup, sizeof(__pyx_k_supports_dot_lookup), 0, 0, 1, 1}, {&__pyx_n_u_surrogateescape, __pyx_k_surrogateescape, sizeof(__pyx_k_surrogateescape), 0, 1, 0, 1}, {&__pyx_n_s_symlink, __pyx_k_symlink, sizeof(__pyx_k_symlink), 0, 0, 1, 1}, {&__pyx_n_s_syncfs, __pyx_k_syncfs, sizeof(__pyx_k_syncfs), 0, 0, 1, 1}, {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, {&__pyx_n_u_system, __pyx_k_system, sizeof(__pyx_k_system), 0, 1, 0, 1}, {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1}, {&__pyx_n_s_target, __pyx_k_target, sizeof(__pyx_k_target), 0, 0, 1, 1}, {&__pyx_n_s_terminate, __pyx_k_terminate, sizeof(__pyx_k_terminate), 0, 0, 1, 1}, {&__pyx_kp_u_terminating_notify_thread, __pyx_k_terminating_notify_thread, sizeof(__pyx_k_terminating_notify_thread), 0, 1, 0, 0}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1}, {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1}, {&__pyx_n_s_tmp, __pyx_k_tmp, sizeof(__pyx_k_tmp), 0, 0, 1, 1}, {&__pyx_n_s_to_set, __pyx_k_to_set, sizeof(__pyx_k_to_set), 0, 0, 1, 1}, {&__pyx_n_s_token, __pyx_k_token, sizeof(__pyx_k_token), 0, 0, 1, 1}, {&__pyx_n_s_trio, __pyx_k_trio, sizeof(__pyx_k_trio), 0, 0, 1, 1}, {&__pyx_n_s_trio_token, __pyx_k_trio_token, sizeof(__pyx_k_trio_token), 0, 0, 1, 1}, {&__pyx_n_s_typing, __pyx_k_typing, sizeof(__pyx_k_typing), 0, 0, 1, 1}, {&__pyx_kp_u_unknown_flag_s_o, __pyx_k_unknown_flag_s_o, sizeof(__pyx_k_unknown_flag_s_o), 0, 1, 0, 0}, {&__pyx_n_s_unlink, __pyx_k_unlink, sizeof(__pyx_k_unlink), 0, 0, 1, 1}, {&__pyx_n_s_unmount, __pyx_k_unmount, sizeof(__pyx_k_unmount), 0, 0, 1, 1}, {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, {&__pyx_kp_u_us_ascii, __pyx_k_us_ascii, sizeof(__pyx_k_us_ascii), 0, 1, 0, 0}, {&__pyx_n_s_use_setstate, __pyx_k_use_setstate, sizeof(__pyx_k_use_setstate), 0, 0, 1, 1}, {&__pyx_n_u_user, __pyx_k_user, sizeof(__pyx_k_user), 0, 1, 0, 1}, {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1}, {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, {&__pyx_n_s_wait_fuse_readable, __pyx_k_wait_fuse_readable, sizeof(__pyx_k_wait_fuse_readable), 0, 0, 1, 1}, {&__pyx_n_s_wait_readable, __pyx_k_wait_readable, sizeof(__pyx_k_wait_readable), 0, 0, 1, 1}, {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1}, {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; return __Pyx_InitStrings(__pyx_string_tab); } /* #### Code section: cached_builtins ### */ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 35, __pyx_L1_error) __pyx_builtin_OverflowError = __Pyx_GetBuiltinName(__pyx_n_s_OverflowError); if (!__pyx_builtin_OverflowError) __PYX_ERR(1, 434, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 692, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 97, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 107, __pyx_L1_error) __pyx_builtin_OSError = __Pyx_GetBuiltinName(__pyx_n_s_OSError); if (!__pyx_builtin_OSError) __PYX_ERR(2, 166, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(2, 178, __pyx_L1_error) __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(3, 1015, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } /* #### Code section: cached_constants ### */ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "src/handlers.pxi":35 * cdef void fuse_init (void *userdata, fuse_conn_info *conn): * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') # <<<<<<<<<<<<<< * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * */ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_Kernel_too_old_pyfuse3_requires); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* "src/handlers.pxi":434 * * if size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') # <<<<<<<<<<<<<< * pbuf = PyBytes_FromStringAndSize(buf, size) * save_retval(fuse_write_async(c, pbuf)) */ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_Value_too_long_to_convert_to_Pyt); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "src/internal.pxi":212 * try: * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): */ __pyx_tuple__34 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(2, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__34); __Pyx_GIVEREF(__pyx_tuple__34); /* "pyfuse3.pyx":343 * def __getstate__(self): * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', # <<<<<<<<<<<<<< * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', */ __pyx_tuple__36 = PyTuple_Pack(16, __pyx_n_u_st_ino, __pyx_n_u_generation, __pyx_n_u_entry_timeout, __pyx_n_u_attr_timeout, __pyx_n_u_st_mode, __pyx_n_u_st_nlink, __pyx_n_u_st_uid, __pyx_n_u_st_gid, __pyx_n_u_st_rdev, __pyx_n_u_st_size, __pyx_n_u_st_blksize, __pyx_n_u_st_blocks, __pyx_n_u_st_atime_ns, __pyx_n_u_st_ctime_ns, __pyx_n_u_st_mtime_ns, __pyx_n_u_st_birthtime_ns); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(3, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36); /* "pyfuse3.pyx":475 * def __getstate__(self): * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', # <<<<<<<<<<<<<< * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): */ __pyx_tuple__37 = PyTuple_Pack(9, __pyx_n_u_f_bsize, __pyx_n_u_f_frsize, __pyx_n_u_f_blocks, __pyx_n_u_f_bfree, __pyx_n_u_f_bavail, __pyx_n_u_f_files, __pyx_n_u_f_ffree, __pyx_n_u_f_favail, __pyx_n_u_f_namemax); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(3, 475, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); /* "pyfuse3.pyx":524 * * if not isinstance(path, str): * raise TypeError('*path* argument must be of type str') # <<<<<<<<<<<<<< * * cdef libc_extra.DIR* dirp */ __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_u_path_argument_must_be_of_type_s); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(3, 524, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38); /* "pyfuse3.pyx":599 * * if not isinstance(name, str): * raise TypeError('*name* argument must be of type str') # <<<<<<<<<<<<<< * * if namespace not in ('system', 'user'): */ __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_u_name_argument_must_be_of_type_s); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(3, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* "pyfuse3.pyx":741 * * if not isinstance(mountpoint, str): * raise TypeError('*mountpoint_* argument must be of type str') # <<<<<<<<<<<<<< * * global operations */ __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_u_mountpoint__argument_must_be_of); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(3, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__40); __Pyx_GIVEREF(__pyx_tuple__40); /* "pyfuse3.pyx":760 * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: * raise RuntimeError("fuse_session_new() failed") # <<<<<<<<<<<<<< * * log.debug('Calling fuse_session_mount') */ __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_u_fuse_session_new_failed); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(3, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); /* "pyfuse3.pyx":765 * res = fuse_session_mount(session, mountpoint_b) * if res != 0: * raise RuntimeError('fuse_session_mount failed') # <<<<<<<<<<<<<< * * session_fd = fuse_session_fd(session) */ __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_u_fuse_session_mount_failed); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(3, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42); /* "pyfuse3.pyx":775 * * if session == NULL: * raise RuntimeError('Need to call init() before main()') # <<<<<<<<<<<<<< * * global trio_token */ __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_u_Need_to_call_init_before_main); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(3, 775, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__44); __Pyx_GIVEREF(__pyx_tuple__44); /* "pyfuse3.pyx":1022 * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() * for x in line.split()[1:]: # <<<<<<<<<<<<<< * gids.add(int(x)) * */ __pyx_slice__45 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice__45)) __PYX_ERR(3, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__45); __Pyx_GIVEREF(__pyx_slice__45); /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum not in (0x2a8cfde, 0x9365cf3, 0xe8d9c4e): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2a8cfde, 0x9365cf3, 0xe8d9c4e) = (active_readers, read_lock, task_count, task_serial))" % __pyx_checksum */ __pyx_tuple__46 = PyTuple_Pack(3, __pyx_int_44617694, __pyx_int_154557683, __pyx_int_244161614); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__46); __Pyx_GIVEREF(__pyx_tuple__46); __pyx_tuple__48 = PyTuple_Pack(3, __pyx_int_240542287, __pyx_int_144710093, __pyx_int_35895208); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__48); __Pyx_GIVEREF(__pyx_tuple__48); /* "pyfuse3.pyx":66 * import logging * import os * import os.path # <<<<<<<<<<<<<< * import sys * import trio */ __pyx_tuple__51 = PyTuple_Pack(2, __pyx_n_s_os, __pyx_n_s_path); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(3, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__51); __Pyx_GIVEREF(__pyx_tuple__51); /* "pyfuse3.pyx":85 * ################## * * log = logging.getLogger("pyfuse3") # <<<<<<<<<<<<<< * fse = sys.getfilesystemencoding() * */ __pyx_tuple__52 = PyTuple_Pack(1, __pyx_n_u_pyfuse3); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(3, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__52); __Pyx_GIVEREF(__pyx_tuple__52); /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ __pyx_tuple__53 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__53); __Pyx_GIVEREF(__pyx_tuple__53); __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __pyx_tuple__55 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__55); __Pyx_GIVEREF(__pyx_tuple__55); __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 3, __pyx_L1_error) /* "src/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ __pyx_tuple__57 = PyTuple_Pack(6, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_entry, __pyx_n_s_ret, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(1, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_lookup_async, 59, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(1, 59, __pyx_L1_error) /* "src/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_tuple__58 = PyTuple_Pack(5, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_entry, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__58); __Pyx_GIVEREF(__pyx_tuple__58); __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_getattr_async, 98, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(1, 98, __pyx_L1_error) /* "src/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ __pyx_tuple__59 = PyTuple_Pack(10, __pyx_n_s_c, __pyx_n_s_fh, __pyx_n_s_ret, __pyx_n_s_now, __pyx_n_s_entry, __pyx_n_s_fields, __pyx_n_s_attr, __pyx_n_s_to_set, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__59); __Pyx_GIVEREF(__pyx_tuple__59); __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_setattr_async, 127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(1, 127, __pyx_L1_error) /* "src/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ __pyx_tuple__60 = PyTuple_Pack(6, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_name, __pyx_n_s_ctx, __pyx_n_s_target, __pyx_n_s_e); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__60); __Pyx_GIVEREF(__pyx_tuple__60); __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_readlink_async, 184, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(1, 184, __pyx_L1_error) /* "src/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_tuple__61 = PyTuple_Pack(6, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_ret, __pyx_n_s_entry, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__61); __Pyx_GIVEREF(__pyx_tuple__61); __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_mknod_async, 209, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(1, 209, __pyx_L1_error) /* "src/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_codeobj__7 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_mkdir_async, 234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__7)) __PYX_ERR(1, 234, __pyx_L1_error) /* "src/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_tuple__62 = PyTuple_Pack(5, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_ret, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(1, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__62); __Pyx_GIVEREF(__pyx_tuple__62); __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_unlink_async, 260, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(1, 260, __pyx_L1_error) /* "src/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_rmdir_async, 281, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(1, 281, __pyx_L1_error) /* "src/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_tuple__63 = PyTuple_Pack(7, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_link, __pyx_n_s_ret, __pyx_n_s_entry, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(1, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__63); __Pyx_GIVEREF(__pyx_tuple__63); __pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_symlink_async, 304, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(1, 304, __pyx_L1_error) /* "src/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ __pyx_tuple__64 = PyTuple_Pack(8, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_newname, __pyx_n_s_ret, __pyx_n_s_flags, __pyx_n_s_newparent, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__64); __Pyx_GIVEREF(__pyx_tuple__64); __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_rename_async, 332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(1, 332, __pyx_L1_error) /* "src/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_tuple__65 = PyTuple_Pack(6, __pyx_n_s_c, __pyx_n_s_newname, __pyx_n_s_ret, __pyx_n_s_entry, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(1, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__65); __Pyx_GIVEREF(__pyx_tuple__65); __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__65, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_link_async, 357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(1, 357, __pyx_L1_error) /* "src/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ __pyx_tuple__66 = PyTuple_Pack(5, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_fi, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(1, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__66); __Pyx_GIVEREF(__pyx_tuple__66); __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_open_async, 381, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(1, 381, __pyx_L1_error) /* "src/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ __pyx_tuple__67 = PyTuple_Pack(5, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_pybuf, __pyx_n_s_buf, __pyx_n_s_e); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(1, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__67); __Pyx_GIVEREF(__pyx_tuple__67); __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_read_async, 408, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(1, 408, __pyx_L1_error) /* "src/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ __pyx_tuple__68 = PyTuple_Pack(5, __pyx_n_s_c, __pyx_n_s_pbuf, __pyx_n_s_ret, __pyx_n_s_len, __pyx_n_s_e); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__68); __Pyx_GIVEREF(__pyx_tuple__68); __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_write_async, 438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(1, 438, __pyx_L1_error) /* "src/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ __pyx_tuple__69 = PyTuple_Pack(5, __pyx_n_s_c, __pyx_n_s_buf, __pyx_n_s_ret, __pyx_n_s_len, __pyx_n_s_e); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(1, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__69); __Pyx_GIVEREF(__pyx_tuple__69); __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_write_buf_async, 462, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(1, 462, __pyx_L1_error) /* "src/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_tuple__70 = PyTuple_Pack(3, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_e); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__70); __Pyx_GIVEREF(__pyx_tuple__70); __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_flush_async, 483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(1, 483, __pyx_L1_error) /* "src/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_release_async, 503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(1, 503, __pyx_L1_error) /* "src/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_fsync_async, 525, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(1, 525, __pyx_L1_error) /* "src/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_tuple__71 = PyTuple_Pack(4, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(1, 546, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__71); __Pyx_GIVEREF(__pyx_tuple__71); __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_opendir_async, 546, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(1, 546, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(0, 3, __pyx_L1_error) /* "src/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ __pyx_tuple__74 = PyTuple_Pack(4, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_token, __pyx_n_s_e); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(1, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__74); __Pyx_GIVEREF(__pyx_tuple__74); __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_readdirplus_async, 578, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(1, 578, __pyx_L1_error) /* "src/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_releasedir_async, 607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(1, 607, __pyx_L1_error) /* "src/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_fsyncdir_async, 630, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(1, 630, __pyx_L1_error) /* "src/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ __pyx_tuple__75 = PyTuple_Pack(5, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_stats, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(1, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__75); __Pyx_GIVEREF(__pyx_tuple__75); __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_statfs_async, 650, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(1, 650, __pyx_L1_error) /* "src/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_tuple__76 = PyTuple_Pack(6, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_ret, __pyx_n_s_ctx, __pyx_n_s_e); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(1, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__76); __Pyx_GIVEREF(__pyx_tuple__76); __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_setxattr_async, 681, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(1, 681, __pyx_L1_error) /* "src/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ __pyx_tuple__77 = PyTuple_Pack(9, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_ret, __pyx_n_s_len_s, __pyx_n_s_len, __pyx_n_s_cbuf, __pyx_n_s_ctx, __pyx_n_s_buf, __pyx_n_s_e); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(1, 726, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__77); __Pyx_GIVEREF(__pyx_tuple__77); __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_getxattr_async, 726, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(1, 726, __pyx_L1_error) /* "src/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ __pyx_tuple__78 = PyTuple_Pack(9, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_len_s, __pyx_n_s_len, __pyx_n_s_cbuf, __pyx_n_s_ctx, __pyx_n_s_res, __pyx_n_s_e, __pyx_n_s_buf); if (unlikely(!__pyx_tuple__78)) __PYX_ERR(1, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__78); __Pyx_GIVEREF(__pyx_tuple__78); __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__78, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_listxattr_async, 759, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(1, 759, __pyx_L1_error) /* "src/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_removexattr_async, 797, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(1, 797, __pyx_L1_error) /* "src/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ __pyx_tuple__79 = PyTuple_Pack(6, __pyx_n_s_c, __pyx_n_s_ret, __pyx_n_s_mask, __pyx_n_s_ctx, __pyx_n_s_allowed, __pyx_n_s_e); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(1, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__79); __Pyx_GIVEREF(__pyx_tuple__79); __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_access_async, 819, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(1, 819, __pyx_L1_error) /* "src/handlers.pxi":848 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_tuple__80 = PyTuple_Pack(8, __pyx_n_s_c, __pyx_n_s_name, __pyx_n_s_ret, __pyx_n_s_entry, __pyx_n_s_fi, __pyx_n_s_ctx, __pyx_n_s_tmp, __pyx_n_s_e); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(1, 848, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__80); __Pyx_GIVEREF(__pyx_tuple__80); __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_handlers_pxi, __pyx_n_s_fuse_create_async, 848, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(1, 848, __pyx_L1_error) /* "src/internal.pxi":114 * raise * * def _notify_loop(): # <<<<<<<<<<<<<< * '''Process async invalidate_entry calls.''' * */ __pyx_tuple__81 = PyTuple_Pack(6, __pyx_n_s_req, __pyx_n_s_inode_p, __pyx_n_s_name, __pyx_n_s_deleted, __pyx_n_s_ignore_enoent, __pyx_n_s_exc); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(2, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__81); __Pyx_GIVEREF(__pyx_tuple__81); __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_internal_pxi, __pyx_n_s_notify_loop, 114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(2, 114, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ __pyx_tuple__83 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__83); __Pyx_GIVEREF(__pyx_tuple__83); __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":16 * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(0, 16, __pyx_L1_error) /* "src/internal.pxi":201 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_internal_pxi, __pyx_n_s_wait_fuse_readable, 201, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(2, 201, __pyx_L1_error) /* "src/internal.pxi":229 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ __pyx_tuple__86 = PyTuple_Pack(6, __pyx_n_s_nursery, __pyx_n_s_min_tasks, __pyx_n_s_max_tasks, __pyx_n_s_res, __pyx_n_s_buf, __pyx_n_s_name); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(2, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__86); __Pyx_GIVEREF(__pyx_tuple__86); __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_internal_pxi, __pyx_n_s_session_loop, 229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(2, 229, __pyx_L1_error) /* "pyfuse3.pyx":143 * cdef readonly mode_t umask * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("RequestContext instances can't be pickled") * */ __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_getstate, 143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(3, 143, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":16 * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(0, 16, __pyx_L1_error) /* "pyfuse3.pyx":171 * self.update_size = False * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("SetattrFields instances can't be pickled") * */ __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_getstate, 171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(3, 171, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 3, __pyx_L1_error) /* "pyfuse3.pyx":341 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', */ __pyx_tuple__93 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_k); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(3, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__93); __Pyx_GIVEREF(__pyx_tuple__93); __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_getstate, 341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(3, 341, __pyx_L1_error) /* "pyfuse3.pyx":350 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ __pyx_tuple__95 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(3, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__95); __Pyx_GIVEREF(__pyx_tuple__95); __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_setstate, 350, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(3, 350, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(0, 3, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(0, 3, __pyx_L1_error) /* "pyfuse3.pyx":473 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', */ __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_getstate, 473, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(3, 473, __pyx_L1_error) /* "pyfuse3.pyx":481 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_setstate, 481, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(3, 481, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(0, 3, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(0, 1, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(0, 3, __pyx_L1_error) /* "pyfuse3.pyx":513 * * * def listdir(path): # <<<<<<<<<<<<<< * '''Like `os.listdir`, but releases the GIL. * */ __pyx_tuple__107 = PyTuple_Pack(6, __pyx_n_s_path, __pyx_n_s_dirp, __pyx_n_s_res, __pyx_n_s_buf, __pyx_n_s_path_b, __pyx_n_s_names); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(3, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__107); __Pyx_GIVEREF(__pyx_tuple__107); __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_listdir, 513, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(3, 513, __pyx_L1_error) /* "pyfuse3.pyx":562 * * * def syncfs(path): # <<<<<<<<<<<<<< * '''Sync filesystem mounted at *path* * */ __pyx_tuple__109 = PyTuple_Pack(3, __pyx_n_s_path, __pyx_n_s_ret, __pyx_n_s_fd); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(3, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__109); __Pyx_GIVEREF(__pyx_tuple__109); __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_syncfs, 562, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(3, 562, __pyx_L1_error) /* "pyfuse3.pyx":581 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ __pyx_tuple__111 = PyTuple_Pack(12, __pyx_n_s_path, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_namespace, __pyx_n_s_ret, __pyx_n_s_len, __pyx_n_s_cvalue, __pyx_n_s_cpath, __pyx_n_s_cname, __pyx_n_s_cnamespace, __pyx_n_s_path_b, __pyx_n_s_name_b); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(3, 581, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__111); __Pyx_GIVEREF(__pyx_tuple__111); __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_setxattr, 581, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(3, 581, __pyx_L1_error) __pyx_tuple__113 = PyTuple_Pack(1, ((PyObject*)__pyx_n_u_user)); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(3, 581, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__113); __Pyx_GIVEREF(__pyx_tuple__113); /* "pyfuse3.pyx":632 * * * def getxattr(path, name, size_t size_guess=128, namespace='user'): # <<<<<<<<<<<<<< * '''Get extended attribute * */ __pyx_tuple__114 = PyTuple_Pack(12, __pyx_n_s_path, __pyx_n_s_name, __pyx_n_s_size_guess, __pyx_n_s_namespace, __pyx_n_s_ret, __pyx_n_s_buf, __pyx_n_s_cpath, __pyx_n_s_cname, __pyx_n_s_bufsize, __pyx_n_s_cnamespace, __pyx_n_s_path_b, __pyx_n_s_name_b); if (unlikely(!__pyx_tuple__114)) __PYX_ERR(3, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__114); __Pyx_GIVEREF(__pyx_tuple__114); __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_getxattr, 632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(3, 632, __pyx_L1_error) /* "pyfuse3.pyx":712 * * * default_options = frozenset(('default_permissions',)) # <<<<<<<<<<<<<< * * def init(ops, mountpoint, options=default_options): */ __pyx_tuple__116 = PyTuple_Pack(1, __pyx_n_u_default_permissions); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(3, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__116); __Pyx_GIVEREF(__pyx_tuple__116); /* "pyfuse3.pyx":714 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ __pyx_tuple__117 = PyTuple_Pack(5, __pyx_n_s_ops, __pyx_n_s_mountpoint, __pyx_n_s_options, __pyx_n_s_f_args, __pyx_n_s_res); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(3, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__117); __Pyx_GIVEREF(__pyx_tuple__117); __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_init, 714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(3, 714, __pyx_L1_error) /* "pyfuse3.pyx":770 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ __pyx_tuple__119 = PyTuple_Pack(3, __pyx_n_s_min_tasks, __pyx_n_s_max_tasks, __pyx_n_s_nursery); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(3, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__119); __Pyx_GIVEREF(__pyx_tuple__119); __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_main, 770, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(3, 770, __pyx_L1_error) /* "pyfuse3.pyx":792 * * * def terminate(): # <<<<<<<<<<<<<< * '''Terminate FUSE main loop. * */ __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_terminate, 792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(3, 792, __pyx_L1_error) /* "pyfuse3.pyx":807 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ __pyx_tuple__121 = PyTuple_Pack(1, __pyx_n_s_unmount); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(3, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__121); __Pyx_GIVEREF(__pyx_tuple__121); __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_close, 807, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(3, 807, __pyx_L1_error) __pyx_tuple__123 = PyTuple_Pack(1, ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(3, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__123); __Pyx_GIVEREF(__pyx_tuple__123); /* "pyfuse3.pyx":840 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ __pyx_tuple__124 = PyTuple_Pack(3, __pyx_n_s_inode, __pyx_n_s_attr_only, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__124)) __PYX_ERR(3, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__124); __Pyx_GIVEREF(__pyx_tuple__124); __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__124, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_invalidate_inode, 840, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(3, 840, __pyx_L1_error) __pyx_tuple__126 = PyTuple_Pack(1, ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__126)) __PYX_ERR(3, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__126); __Pyx_GIVEREF(__pyx_tuple__126); /* "pyfuse3.pyx":869 * * * def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): # <<<<<<<<<<<<<< * '''Invalidate directory entry * */ __pyx_tuple__127 = PyTuple_Pack(7, __pyx_n_s_inode_p, __pyx_n_s_name, __pyx_n_s_deleted, __pyx_n_s_cname, __pyx_n_s_slen, __pyx_n_s_len, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__127); __Pyx_GIVEREF(__pyx_tuple__127); __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_invalidate_entry, 869, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(3, 869, __pyx_L1_error) /* "pyfuse3.pyx":925 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ __pyx_tuple__129 = PyTuple_Pack(5, __pyx_n_s_inode_p, __pyx_n_s_name, __pyx_n_s_deleted, __pyx_n_s_ignore_enoent, __pyx_n_s_t); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(3, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__129); __Pyx_GIVEREF(__pyx_tuple__129); __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_invalidate_entry_async, 925, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(3, 925, __pyx_L1_error) __pyx_tuple__131 = PyTuple_Pack(2, ((PyObject *)__pyx_int_0), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(3, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__131); __Pyx_GIVEREF(__pyx_tuple__131); /* "pyfuse3.pyx":961 * * * def notify_store(inode, offset, data): # <<<<<<<<<<<<<< * '''Store data in kernel page cache * */ __pyx_tuple__132 = PyTuple_Pack(9, __pyx_n_s_inode, __pyx_n_s_offset, __pyx_n_s_data, __pyx_n_s_ret, __pyx_n_s_ino, __pyx_n_s_off, __pyx_n_s_pybuf, __pyx_n_s_bufvec, __pyx_n_s_buf); if (unlikely(!__pyx_tuple__132)) __PYX_ERR(3, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__132); __Pyx_GIVEREF(__pyx_tuple__132); __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__132, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_notify_store, 961, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(3, 961, __pyx_L1_error) /* "pyfuse3.pyx":1005 * * * def get_sup_groups(pid): # <<<<<<<<<<<<<< * '''Return supplementary group ids of *pid* * */ __pyx_tuple__134 = PyTuple_Pack(5, __pyx_n_s_pid, __pyx_n_s_fh, __pyx_n_s_line, __pyx_n_s_gids, __pyx_n_s_x); if (unlikely(!__pyx_tuple__134)) __PYX_ERR(3, 1005, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__134); __Pyx_GIVEREF(__pyx_tuple__134); __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__134, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_get_sup_groups, 1005, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(3, 1005, __pyx_L1_error) /* "pyfuse3.pyx":1028 * * * def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): # <<<<<<<<<<<<<< * '''Report a directory entry in response to a `~Operations.readdir` request. * */ __pyx_tuple__136 = PyTuple_Pack(6, __pyx_n_s_token, __pyx_n_s_name, __pyx_n_s_attr, __pyx_n_s_next_id, __pyx_n_s_cname, __pyx_n_s_len); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(3, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__136); __Pyx_GIVEREF(__pyx_tuple__136); __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pyfuse3_pyx, __pyx_n_s_readdir_reply, 1028, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(3, 1028, __pyx_L1_error) /* "(tree fragment)":1 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_tuple__138 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__138); __Pyx_GIVEREF(__pyx_tuple__138); __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle__WorkerData, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RequestContext, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } /* #### Code section: init_constants ### */ static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(3, 1, __pyx_L1_error); __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_35895208 = PyInt_FromLong(35895208L); if (unlikely(!__pyx_int_35895208)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_44617694 = PyInt_FromLong(44617694L); if (unlikely(!__pyx_int_44617694)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_144710093 = PyInt_FromLong(144710093L); if (unlikely(!__pyx_int_144710093)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_154557683 = PyInt_FromLong(154557683L); if (unlikely(!__pyx_int_154557683)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_240542287 = PyInt_FromLong(240542287L); if (unlikely(!__pyx_int_240542287)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_244161614 = PyInt_FromLong(244161614L); if (unlikely(!__pyx_int_244161614)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_int_1000000000 = PyInt_FromLong(1000000000L); if (unlikely(!__pyx_int_1000000000)) __PYX_ERR(3, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } /* #### Code section: init_globals ### */ static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { return 0; } /* #### Code section: init_module ### */ static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ static int __Pyx_modinit_global_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ __pyx_v_7pyfuse3_operations = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3_mountpoint_b = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3_py_retval = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3__notify_queue = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3_worker_data = ((struct __pyx_obj_7pyfuse3__WorkerData *)Py_None); Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3__Container = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3__Container_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3__Container)) __PYX_ERR(1, 14, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3__Container_spec, __pyx_ptype_7pyfuse3__Container) < 0) __PYX_ERR(1, 14, __pyx_L1_error) #else __pyx_ptype_7pyfuse3__Container = &__pyx_type_7pyfuse3__Container; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3__Container) < 0) __PYX_ERR(1, 14, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3__Container->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3__Container->tp_dictoffset && __pyx_ptype_7pyfuse3__Container->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3__Container->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Container, (PyObject *) __pyx_ptype_7pyfuse3__Container) < 0) __PYX_ERR(1, 14, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3__Container) < 0) __PYX_ERR(1, 14, __pyx_L1_error) #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3_ReaddirToken = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_ReaddirToken_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3_ReaddirToken)) __PYX_ERR(1, 562, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_ReaddirToken_spec, __pyx_ptype_7pyfuse3_ReaddirToken) < 0) __PYX_ERR(1, 562, __pyx_L1_error) #else __pyx_ptype_7pyfuse3_ReaddirToken = &__pyx_type_7pyfuse3_ReaddirToken; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3_ReaddirToken) < 0) __PYX_ERR(1, 562, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3_ReaddirToken->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3_ReaddirToken->tp_dictoffset && __pyx_ptype_7pyfuse3_ReaddirToken->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3_ReaddirToken->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ReaddirToken, (PyObject *) __pyx_ptype_7pyfuse3_ReaddirToken) < 0) __PYX_ERR(1, 562, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3_ReaddirToken) < 0) __PYX_ERR(1, 562, __pyx_L1_error) #endif __pyx_vtabptr_7pyfuse3__WorkerData = &__pyx_vtable_7pyfuse3__WorkerData; __pyx_vtable_7pyfuse3__WorkerData.get_name = (PyObject *(*)(struct __pyx_obj_7pyfuse3__WorkerData *))__pyx_f_7pyfuse3_11_WorkerData_get_name; #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3__WorkerData = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3__WorkerData_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3__WorkerData)) __PYX_ERR(2, 181, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3__WorkerData_spec, __pyx_ptype_7pyfuse3__WorkerData) < 0) __PYX_ERR(2, 181, __pyx_L1_error) #else __pyx_ptype_7pyfuse3__WorkerData = &__pyx_type_7pyfuse3__WorkerData; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3__WorkerData) < 0) __PYX_ERR(2, 181, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3__WorkerData->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3__WorkerData->tp_dictoffset && __pyx_ptype_7pyfuse3__WorkerData->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3__WorkerData->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (__Pyx_SetVtable(__pyx_ptype_7pyfuse3__WorkerData, __pyx_vtabptr_7pyfuse3__WorkerData) < 0) __PYX_ERR(2, 181, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_MergeVtables(__pyx_ptype_7pyfuse3__WorkerData) < 0) __PYX_ERR(2, 181, __pyx_L1_error) #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_WorkerData, (PyObject *) __pyx_ptype_7pyfuse3__WorkerData) < 0) __PYX_ERR(2, 181, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3__WorkerData) < 0) __PYX_ERR(2, 181, __pyx_L1_error) #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3_RequestContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_RequestContext_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3_RequestContext)) __PYX_ERR(3, 131, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_RequestContext_spec, __pyx_ptype_7pyfuse3_RequestContext) < 0) __PYX_ERR(3, 131, __pyx_L1_error) #else __pyx_ptype_7pyfuse3_RequestContext = &__pyx_type_7pyfuse3_RequestContext; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3_RequestContext) < 0) __PYX_ERR(3, 131, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3_RequestContext->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3_RequestContext->tp_dictoffset && __pyx_ptype_7pyfuse3_RequestContext->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3_RequestContext->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RequestContext, (PyObject *) __pyx_ptype_7pyfuse3_RequestContext) < 0) __PYX_ERR(3, 131, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3_RequestContext) < 0) __PYX_ERR(3, 131, __pyx_L1_error) #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3_SetattrFields = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_SetattrFields_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3_SetattrFields)) __PYX_ERR(3, 148, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_SetattrFields_spec, __pyx_ptype_7pyfuse3_SetattrFields) < 0) __PYX_ERR(3, 148, __pyx_L1_error) #else __pyx_ptype_7pyfuse3_SetattrFields = &__pyx_type_7pyfuse3_SetattrFields; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3_SetattrFields) < 0) __PYX_ERR(3, 148, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3_SetattrFields->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3_SetattrFields->tp_dictoffset && __pyx_ptype_7pyfuse3_SetattrFields->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3_SetattrFields->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SetattrFields, (PyObject *) __pyx_ptype_7pyfuse3_SetattrFields) < 0) __PYX_ERR(3, 148, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3_SetattrFields) < 0) __PYX_ERR(3, 148, __pyx_L1_error) #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3_EntryAttributes = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_EntryAttributes_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3_EntryAttributes)) __PYX_ERR(3, 176, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_EntryAttributes_spec, __pyx_ptype_7pyfuse3_EntryAttributes) < 0) __PYX_ERR(3, 176, __pyx_L1_error) #else __pyx_ptype_7pyfuse3_EntryAttributes = &__pyx_type_7pyfuse3_EntryAttributes; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3_EntryAttributes) < 0) __PYX_ERR(3, 176, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3_EntryAttributes->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3_EntryAttributes->tp_dictoffset && __pyx_ptype_7pyfuse3_EntryAttributes->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3_EntryAttributes->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_EntryAttributes, (PyObject *) __pyx_ptype_7pyfuse3_EntryAttributes) < 0) __PYX_ERR(3, 176, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3_EntryAttributes) < 0) __PYX_ERR(3, 176, __pyx_L1_error) #endif __pyx_vtabptr_7pyfuse3_FileInfo = &__pyx_vtable_7pyfuse3_FileInfo; __pyx_vtable_7pyfuse3_FileInfo._copy_to_fuse = (PyObject *(*)(struct __pyx_obj_7pyfuse3_FileInfo *, struct fuse_file_info *))__pyx_f_7pyfuse3_8FileInfo__copy_to_fuse; #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3_FileInfo = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_FileInfo_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3_FileInfo)) __PYX_ERR(3, 356, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_FileInfo_spec, __pyx_ptype_7pyfuse3_FileInfo) < 0) __PYX_ERR(3, 356, __pyx_L1_error) #else __pyx_ptype_7pyfuse3_FileInfo = &__pyx_type_7pyfuse3_FileInfo; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3_FileInfo) < 0) __PYX_ERR(3, 356, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3_FileInfo->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3_FileInfo->tp_dictoffset && __pyx_ptype_7pyfuse3_FileInfo->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3_FileInfo->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (__Pyx_SetVtable(__pyx_ptype_7pyfuse3_FileInfo, __pyx_vtabptr_7pyfuse3_FileInfo) < 0) __PYX_ERR(3, 356, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_MergeVtables(__pyx_ptype_7pyfuse3_FileInfo) < 0) __PYX_ERR(3, 356, __pyx_L1_error) #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FileInfo, (PyObject *) __pyx_ptype_7pyfuse3_FileInfo) < 0) __PYX_ERR(3, 356, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3_FileInfo) < 0) __PYX_ERR(3, 356, __pyx_L1_error) #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3_StatvfsData = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_StatvfsData_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3_StatvfsData)) __PYX_ERR(3, 397, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_StatvfsData_spec, __pyx_ptype_7pyfuse3_StatvfsData) < 0) __PYX_ERR(3, 397, __pyx_L1_error) #else __pyx_ptype_7pyfuse3_StatvfsData = &__pyx_type_7pyfuse3_StatvfsData; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3_StatvfsData) < 0) __PYX_ERR(3, 397, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3_StatvfsData->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3_StatvfsData->tp_dictoffset && __pyx_ptype_7pyfuse3_StatvfsData->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3_StatvfsData->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_StatvfsData, (PyObject *) __pyx_ptype_7pyfuse3_StatvfsData) < 0) __PYX_ERR(3, 397, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3_StatvfsData) < 0) __PYX_ERR(3, 397, __pyx_L1_error) #endif #if CYTHON_USE_TYPE_SPECS __pyx_t_1 = PyTuple_Pack(1, (PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7pyfuse3_FUSEError = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_FUSEError_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_ptype_7pyfuse3_FUSEError)) __PYX_ERR(3, 488, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_FUSEError_spec, __pyx_ptype_7pyfuse3_FUSEError) < 0) __PYX_ERR(3, 488, __pyx_L1_error) #else __pyx_ptype_7pyfuse3_FUSEError = &__pyx_type_7pyfuse3_FUSEError; #endif if (sizeof(struct __pyx_obj_7pyfuse3_FUSEError) != sizeof(PyBaseExceptionObject)) { if (__Pyx_validate_extern_base((&((PyTypeObject*)PyExc_Exception)[0])) < 0) __PYX_ERR(3, 488, __pyx_L1_error) } #if !CYTHON_COMPILING_IN_LIMITED_API __pyx_ptype_7pyfuse3_FUSEError->tp_dealloc = (&((PyTypeObject*)PyExc_Exception)[0])->tp_dealloc; __pyx_ptype_7pyfuse3_FUSEError->tp_base = (&((PyTypeObject*)PyExc_Exception)[0]); #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3_FUSEError) < 0) __PYX_ERR(3, 488, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3_FUSEError->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3_FUSEError->tp_dictoffset && __pyx_ptype_7pyfuse3_FUSEError->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3_FUSEError->tp_getattro = __Pyx_PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FUSEError, (PyObject *) __pyx_ptype_7pyfuse3_FUSEError) < 0) __PYX_ERR(3, 488, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_7pyfuse3_FUSEError) < 0) __PYX_ERR(3, 488, __pyx_L1_error) #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async)) __PYX_ERR(1, 59, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async) < 0) __PYX_ERR(1, 59, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async = &__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async) < 0) __PYX_ERR(1, 59, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)) __PYX_ERR(1, 98, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async) < 0) __PYX_ERR(1, 98, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async) < 0) __PYX_ERR(1, 98, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)) __PYX_ERR(1, 127, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async) < 0) __PYX_ERR(1, 127, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async) < 0) __PYX_ERR(1, 127, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)) __PYX_ERR(1, 184, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async) < 0) __PYX_ERR(1, 184, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async = &__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async) < 0) __PYX_ERR(1, 184, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)) __PYX_ERR(1, 209, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async) < 0) __PYX_ERR(1, 209, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async = &__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async) < 0) __PYX_ERR(1, 209, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)) __PYX_ERR(1, 234, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async) < 0) __PYX_ERR(1, 234, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async) < 0) __PYX_ERR(1, 234, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)) __PYX_ERR(1, 260, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async) < 0) __PYX_ERR(1, 260, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async = &__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async) < 0) __PYX_ERR(1, 260, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)) __PYX_ERR(1, 281, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async) < 0) __PYX_ERR(1, 281, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async) < 0) __PYX_ERR(1, 281, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)) __PYX_ERR(1, 304, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async) < 0) __PYX_ERR(1, 304, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async = &__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async) < 0) __PYX_ERR(1, 304, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)) __PYX_ERR(1, 332, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async) < 0) __PYX_ERR(1, 332, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async = &__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async) < 0) __PYX_ERR(1, 332, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async)) __PYX_ERR(1, 357, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async) < 0) __PYX_ERR(1, 357, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async = &__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async) < 0) __PYX_ERR(1, 357, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async)) __PYX_ERR(1, 381, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async) < 0) __PYX_ERR(1, 381, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async = &__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async) < 0) __PYX_ERR(1, 381, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async)) __PYX_ERR(1, 408, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async) < 0) __PYX_ERR(1, 408, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async = &__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async) < 0) __PYX_ERR(1, 408, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async)) __PYX_ERR(1, 438, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async) < 0) __PYX_ERR(1, 438, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async = &__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async) < 0) __PYX_ERR(1, 438, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)) __PYX_ERR(1, 462, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async) < 0) __PYX_ERR(1, 462, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async = &__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async) < 0) __PYX_ERR(1, 462, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)) __PYX_ERR(1, 483, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async) < 0) __PYX_ERR(1, 483, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async = &__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async) < 0) __PYX_ERR(1, 483, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async)) __PYX_ERR(1, 503, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async) < 0) __PYX_ERR(1, 503, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async = &__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async) < 0) __PYX_ERR(1, 503, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)) __PYX_ERR(1, 525, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async) < 0) __PYX_ERR(1, 525, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async = &__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async) < 0) __PYX_ERR(1, 525, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)) __PYX_ERR(1, 546, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async) < 0) __PYX_ERR(1, 546, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async) < 0) __PYX_ERR(1, 546, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)) __PYX_ERR(1, 578, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async) < 0) __PYX_ERR(1, 578, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async = &__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async) < 0) __PYX_ERR(1, 578, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)) __PYX_ERR(1, 607, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async) < 0) __PYX_ERR(1, 607, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async) < 0) __PYX_ERR(1, 607, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)) __PYX_ERR(1, 630, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async) < 0) __PYX_ERR(1, 630, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async) < 0) __PYX_ERR(1, 630, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)) __PYX_ERR(1, 650, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async) < 0) __PYX_ERR(1, 650, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async = &__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async) < 0) __PYX_ERR(1, 650, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)) __PYX_ERR(1, 681, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async) < 0) __PYX_ERR(1, 681, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async) < 0) __PYX_ERR(1, 681, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)) __PYX_ERR(1, 726, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async) < 0) __PYX_ERR(1, 726, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async) < 0) __PYX_ERR(1, 726, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)) __PYX_ERR(1, 759, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async) < 0) __PYX_ERR(1, 759, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async) < 0) __PYX_ERR(1, 759, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)) __PYX_ERR(1, 797, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async) < 0) __PYX_ERR(1, 797, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async) < 0) __PYX_ERR(1, 797, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async)) __PYX_ERR(1, 819, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async) < 0) __PYX_ERR(1, 819, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async = &__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async) < 0) __PYX_ERR(1, 819, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async)) __PYX_ERR(1, 848, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async) < 0) __PYX_ERR(1, 848, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async = &__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_create_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async) < 0) __PYX_ERR(1, 848, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_create_async->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable)) __PYX_ERR(2, 201, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable) < 0) __PYX_ERR(2, 201, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable = &__pyx_type_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable) < 0) __PYX_ERR(2, 201, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_29__wait_fuse_readable->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop)) __PYX_ERR(2, 229, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop) < 0) __PYX_ERR(2, 229, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop = &__pyx_type_7pyfuse3___pyx_scope_struct_30__session_loop; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop) < 0) __PYX_ERR(2, 229, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_30__session_loop->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_7pyfuse3___pyx_scope_struct_31_main = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_31_main_spec, NULL); if (unlikely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main)) __PYX_ERR(3, 770, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_31_main_spec, __pyx_ptype_7pyfuse3___pyx_scope_struct_31_main) < 0) __PYX_ERR(3, 770, __pyx_L1_error) #else __pyx_ptype_7pyfuse3___pyx_scope_struct_31_main = &__pyx_type_7pyfuse3___pyx_scope_struct_31_main; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main) < 0) __PYX_ERR(3, 770, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_7pyfuse3___pyx_scope_struct_31_main->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_7pyfuse3___pyx_scope_struct_31_main->tp_dictoffset && __pyx_ptype_7pyfuse3___pyx_scope_struct_31_main->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_7pyfuse3___pyx_scope_struct_31_main->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_0(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_0(PyTypeObject), #elif CYTHON_COMPILING_IN_LIMITED_API sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_0(PyTypeObject), #else sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_0(PyHeapTypeObject), #endif __Pyx_ImportType_CheckSize_Warn_3_0_0); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_variable_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } #if PY_MAJOR_VERSION >= 3 #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec_pyfuse3(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec_pyfuse3}, {0, NULL} }; #endif #ifdef __cplusplus namespace { struct PyModuleDef __pyx_moduledef = #else static struct PyModuleDef __pyx_moduledef = #endif { PyModuleDef_HEAD_INIT, "pyfuse3", __pyx_k_pyfuse3_pyx_Copyright_2013_Niko, /* m_doc */ #if CYTHON_PEP489_MULTI_PHASE_INIT 0, /* m_size */ #elif CYTHON_USE_MODULE_STATE sizeof(__pyx_mstate), /* m_size */ #else -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif #if CYTHON_USE_MODULE_STATE __pyx_m_traverse, /* m_traverse */ __pyx_m_clear, /* m_clear */ NULL /* m_free */ #else NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ #endif }; #ifdef __cplusplus } /* anonymous namespace */ #endif #endif #ifndef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #elif PY_MAJOR_VERSION < 3 #ifdef __cplusplus #define __Pyx_PyMODINIT_FUNC extern "C" void #else #define __Pyx_PyMODINIT_FUNC void #endif #else #ifdef __cplusplus #define __Pyx_PyMODINIT_FUNC extern "C" PyObject * #else #define __Pyx_PyMODINIT_FUNC PyObject * #endif #endif #if PY_MAJOR_VERSION < 3 __Pyx_PyMODINIT_FUNC initpyfuse3(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC initpyfuse3(void) #else __Pyx_PyMODINIT_FUNC PyInit_pyfuse3(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC PyInit_pyfuse3(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { #if PY_VERSION_HEX >= 0x030700A1 static PY_INT64_T main_interpreter_id = -1; PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); if (main_interpreter_id == -1) { main_interpreter_id = current_id; return (unlikely(current_id == -1)) ? -1 : 0; } else if (unlikely(main_interpreter_id != current_id)) #else static PyInterpreterState *main_interpreter = NULL; PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; if (!main_interpreter) { main_interpreter = current_interpreter; } else if (unlikely(main_interpreter != current_interpreter)) #endif { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } #if CYTHON_COMPILING_IN_LIMITED_API static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) #else static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) #endif { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { #if CYTHON_COMPILING_IN_LIMITED_API result = PyModule_AddObject(module, to_name, value); #else result = PyDict_SetItemString(moddict, to_name, value); #endif } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; CYTHON_UNUSED_VAR(def); if (__Pyx_check_single_interpreter()) return NULL; if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; #if CYTHON_COMPILING_IN_LIMITED_API moddict = module; #else moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; #endif if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec_pyfuse3(PyObject *__pyx_pyinit_module) #endif #endif { int stringtab_initialized = 0; #if CYTHON_USE_MODULE_STATE int pystate_addmodule_run = 0; #endif PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module 'pyfuse3' has already been imported. Re-initialisation is not supported."); return -1; } #elif PY_MAJOR_VERSION >= 3 if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; Py_INCREF(__pyx_m); #else #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("pyfuse3", __pyx_methods, __pyx_k_pyfuse3_pyx_Copyright_2013_Niko, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); if (unlikely(!__pyx_m)) __PYX_ERR(3, 1, __pyx_L1_error) #elif CYTHON_USE_MODULE_STATE __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1, __pyx_L1_error) { int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to pyfuse3 pseudovariable */ if (unlikely((add_module_result < 0))) __PYX_ERR(3, 1, __pyx_L1_error) pystate_addmodule_run = 1; } #else __pyx_m = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_m)) __PYX_ERR(3, 1, __pyx_L1_error) #endif #endif CYTHON_UNUSED_VAR(__pyx_t_1); __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(3, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(3, 1, __pyx_L1_error) Py_INCREF(__pyx_b); __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(3, 1, __pyx_L1_error) Py_INCREF(__pyx_cython_runtime); if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(3, 1, __pyx_L1_error) #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_pyfuse3(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(3, 1, __pyx_L1_error) #ifdef __Pxy_PyFrame_Initialize_Offsets __Pxy_PyFrame_Initialize_Offsets(); #endif __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(3, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(3, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitConstants() < 0) __PYX_ERR(3, 1, __pyx_L1_error) stringtab_initialized = 1; if (__Pyx_InitGlobals() < 0) __PYX_ERR(3, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pyfuse3) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main_2) < 0) __PYX_ERR(3, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(3, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pyfuse3")) { if (unlikely((PyDict_SetItemString(modules, "pyfuse3", __pyx_m) < 0))) __PYX_ERR(3, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(3, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(3, 1, __pyx_L1_error) /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); (void)__Pyx_modinit_function_export_code(); if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(3, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(3, 1, __pyx_L1_error) (void)__Pyx_modinit_variable_import_code(); (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(3, 1, __pyx_L1_error) #endif /* "pyfuse3.pyx":62 * ################ * * from pickle import PicklingError # <<<<<<<<<<<<<< * from queue import Queue * import logging */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_PicklingError); __Pyx_GIVEREF(__pyx_n_s_PicklingError); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PicklingError); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PicklingError); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PicklingError, __pyx_t_2) < 0) __PYX_ERR(3, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":63 * * from pickle import PicklingError * from queue import Queue # <<<<<<<<<<<<<< * import logging * import os */ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_s_Queue); __Pyx_GIVEREF(__pyx_n_s_Queue); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_Queue); __pyx_t_2 = __Pyx_Import(__pyx_n_s_queue, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Queue); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Queue, __pyx_t_3) < 0) __PYX_ERR(3, 63, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":64 * from pickle import PicklingError * from queue import Queue * import logging # <<<<<<<<<<<<<< * import os * import os.path */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_logging, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_logging, __pyx_t_2) < 0) __PYX_ERR(3, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":65 * from queue import Queue * import logging * import os # <<<<<<<<<<<<<< * import os.path * import sys */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_os, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_2) < 0) __PYX_ERR(3, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":66 * import logging * import os * import os.path # <<<<<<<<<<<<<< * import sys * import trio */ __pyx_t_2 = __Pyx_Import(__pyx_n_s_os_path, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_2) < 0) __PYX_ERR(3, 66, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":67 * import os * import os.path * import sys # <<<<<<<<<<<<<< * import trio * import threading */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_2) < 0) __PYX_ERR(3, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":68 * import os.path * import sys * import trio # <<<<<<<<<<<<<< * import threading * import typing */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_trio, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_trio, __pyx_t_2) < 0) __PYX_ERR(3, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":69 * import sys * import trio * import threading # <<<<<<<<<<<<<< * import typing * */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_threading, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_2) < 0) __PYX_ERR(3, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":70 * import trio * import threading * import typing # <<<<<<<<<<<<<< * * import _pyfuse3 */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_typing, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_typing, __pyx_t_2) < 0) __PYX_ERR(3, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":72 * import typing * * import _pyfuse3 # <<<<<<<<<<<<<< * _pyfuse3.FUSEError = FUSEError * */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_pyfuse3_2, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyfuse3_2, __pyx_t_2) < 0) __PYX_ERR(3, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":73 * * import _pyfuse3 * _pyfuse3.FUSEError = FUSEError # <<<<<<<<<<<<<< * * from _pyfuse3 import Operations, async_wrapper */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyfuse3_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_FUSEError, ((PyObject *)__pyx_ptype_7pyfuse3_FUSEError)) < 0) __PYX_ERR(3, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3.pyx":75 * _pyfuse3.FUSEError = FUSEError * * from _pyfuse3 import Operations, async_wrapper # <<<<<<<<<<<<<< * * if typing.TYPE_CHECKING: */ __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_Operations); __Pyx_GIVEREF(__pyx_n_s_Operations); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Operations); __Pyx_INCREF(__pyx_n_s_async_wrapper); __Pyx_GIVEREF(__pyx_n_s_async_wrapper); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_async_wrapper); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pyfuse3_2, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_Operations); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Operations, __pyx_t_2) < 0) __PYX_ERR(3, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_async_wrapper); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_async_wrapper, __pyx_t_2) < 0) __PYX_ERR(3, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":77 * from _pyfuse3 import Operations, async_wrapper * * if typing.TYPE_CHECKING: # <<<<<<<<<<<<<< * from _pyfuse3 import FileHandleT, FileNameT, FlagT, InodeT, ModeT * */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_typing); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_TYPE_CHECKING); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pyfuse3.pyx":78 * * if typing.TYPE_CHECKING: * from _pyfuse3 import FileHandleT, FileNameT, FlagT, InodeT, ModeT # <<<<<<<<<<<<<< * * */ __pyx_t_2 = PyList_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_FileHandleT); __Pyx_GIVEREF(__pyx_n_s_FileHandleT); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_FileHandleT); __Pyx_INCREF(__pyx_n_s_FileNameT); __Pyx_GIVEREF(__pyx_n_s_FileNameT); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_FileNameT); __Pyx_INCREF(__pyx_n_s_FlagT); __Pyx_GIVEREF(__pyx_n_s_FlagT); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_FlagT); __Pyx_INCREF(__pyx_n_s_InodeT); __Pyx_GIVEREF(__pyx_n_s_InodeT); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_InodeT); __Pyx_INCREF(__pyx_n_s_ModeT); __Pyx_GIVEREF(__pyx_n_s_ModeT); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_ModeT); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pyfuse3_2, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_FileHandleT); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_FileHandleT, __pyx_t_2) < 0) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_FileNameT); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_FileNameT, __pyx_t_2) < 0) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_FlagT); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_FlagT, __pyx_t_2) < 0) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_InodeT); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_InodeT, __pyx_t_2) < 0) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_ModeT); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ModeT, __pyx_t_2) < 0) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":77 * from _pyfuse3 import Operations, async_wrapper * * if typing.TYPE_CHECKING: # <<<<<<<<<<<<<< * from _pyfuse3 import FileHandleT, FileNameT, FlagT, InodeT, ModeT * */ } /* "pyfuse3.pyx":85 * ################## * * log = logging.getLogger("pyfuse3") # <<<<<<<<<<<<<< * fse = sys.getfilesystemencoding() * */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logging); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__52, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_log, __pyx_t_3) < 0) __PYX_ERR(3, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":86 * * log = logging.getLogger("pyfuse3") * fse = sys.getfilesystemencoding() # <<<<<<<<<<<<<< * * cdef object operations */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sys); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getfilesystemencoding); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_fse, __pyx_t_3) < 0) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":90 * cdef object operations * cdef object mountpoint_b * cdef fuse_session* session = NULL # <<<<<<<<<<<<<< * cdef fuse_lowlevel_ops fuse_ops * cdef int session_fd */ __pyx_v_7pyfuse3_session = NULL; /* "pyfuse3.pyx":95 * cdef object py_retval * * cdef object _notify_queue = None # <<<<<<<<<<<<<< * * ROOT_INODE = FUSE_ROOT_ID */ __Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7pyfuse3__notify_queue); __Pyx_DECREF_SET(__pyx_v_7pyfuse3__notify_queue, Py_None); __Pyx_GIVEREF(Py_None); /* "pyfuse3.pyx":97 * cdef object _notify_queue = None * * ROOT_INODE = FUSE_ROOT_ID # <<<<<<<<<<<<<< * __version__ = PYFUSE3_VERSION.decode('utf-8') * */ __pyx_t_3 = __Pyx_PyInt_From_int(FUSE_ROOT_ID); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROOT_INODE, __pyx_t_3) < 0) __PYX_ERR(3, 97, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":98 * * ROOT_INODE = FUSE_ROOT_ID * __version__ = PYFUSE3_VERSION.decode('utf-8') # <<<<<<<<<<<<<< * * _NANOS_PER_SEC = 1000000000 */ __pyx_t_3 = __Pyx_decode_c_string(PYFUSE3_VERSION, 0, strlen(PYFUSE3_VERSION), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_t_3) < 0) __PYX_ERR(3, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":100 * __version__ = PYFUSE3_VERSION.decode('utf-8') * * _NANOS_PER_SEC = 1000000000 # <<<<<<<<<<<<<< * * # In the Cython source, we want the names to refer to the */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_NANOS_PER_SEC, __pyx_int_1000000000) < 0) __PYX_ERR(3, 100, __pyx_L1_error) /* "pyfuse3.pyx":104 * # In the Cython source, we want the names to refer to the * # C constants. Therefore, we assign through globals(). * g = globals() # <<<<<<<<<<<<<< * g['ENOATTR'] = ENOATTR * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE */ __pyx_t_3 = __Pyx_Globals(); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_g, __pyx_t_3) < 0) __PYX_ERR(3, 104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":105 * # C constants. Therefore, we assign through globals(). * g = globals() * g['ENOATTR'] = ENOATTR # <<<<<<<<<<<<<< * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE */ __pyx_t_3 = __Pyx_PyInt_From_int(ENOATTR); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_g); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_n_u_ENOATTR, __pyx_t_3) < 0))) __PYX_ERR(3, 105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":106 * g = globals() * g['ENOATTR'] = ENOATTR * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE # <<<<<<<<<<<<<< * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE * */ __pyx_t_3 = __Pyx_PyInt_From_int(RENAME_EXCHANGE); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_g); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_n_u_RENAME_EXCHANGE, __pyx_t_3) < 0))) __PYX_ERR(3, 106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":107 * g['ENOATTR'] = ENOATTR * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE # <<<<<<<<<<<<<< * * trio_token = None */ __pyx_t_3 = __Pyx_PyInt_From_int(RENAME_NOREPLACE); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_g); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_n_u_RENAME_NOREPLACE, __pyx_t_3) < 0))) __PYX_ERR(3, 107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3.pyx":109 * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE * * trio_token = None # <<<<<<<<<<<<<< * * */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_trio_token, Py_None) < 0) __PYX_ERR(3, 109, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10_Container_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Container___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10_Container_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Container___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_1fuse_lookup_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_lookup_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_lookup_async, __pyx_t_3) < 0) __PYX_ERR(1, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_4fuse_getattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_getattr_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_getattr_async, __pyx_t_3) < 0) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_7fuse_setattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_setattr_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_setattr_async, __pyx_t_3) < 0) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10fuse_readlink_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_readlink_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_readlink_async, __pyx_t_3) < 0) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13fuse_mknod_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_mknod_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_mknod_async, __pyx_t_3) < 0) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_16fuse_mkdir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_mkdir_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__7)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_mkdir_async, __pyx_t_3) < 0) __PYX_ERR(1, 234, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_19fuse_unlink_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_unlink_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_unlink_async, __pyx_t_3) < 0) __PYX_ERR(1, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_22fuse_rmdir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_rmdir_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__9)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_rmdir_async, __pyx_t_3) < 0) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_25fuse_symlink_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_symlink_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__10)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_symlink_async, __pyx_t_3) < 0) __PYX_ERR(1, 304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_28fuse_rename_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_rename_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__11)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_rename_async, __pyx_t_3) < 0) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_31fuse_link_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_link_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_link_async, __pyx_t_3) < 0) __PYX_ERR(1, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_34fuse_open_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_open_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__13)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_open_async, __pyx_t_3) < 0) __PYX_ERR(1, 381, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_37fuse_read_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_read_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__14)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_read_async, __pyx_t_3) < 0) __PYX_ERR(1, 408, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_40fuse_write_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_write_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_write_async, __pyx_t_3) < 0) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_43fuse_write_buf_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_write_buf_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_write_buf_async, __pyx_t_3) < 0) __PYX_ERR(1, 462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_46fuse_flush_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_flush_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__18)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_flush_async, __pyx_t_3) < 0) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_49fuse_release_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_release_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__19)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_release_async, __pyx_t_3) < 0) __PYX_ERR(1, 503, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_52fuse_fsync_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_fsync_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_fsync_async, __pyx_t_3) < 0) __PYX_ERR(1, 525, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_55fuse_opendir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_opendir_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_opendir_async, __pyx_t_3) < 0) __PYX_ERR(1, 546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_12ReaddirToken_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReaddirToken___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_12ReaddirToken_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReaddirToken___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_58fuse_readdirplus_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_readdirplus_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_readdirplus_async, __pyx_t_3) < 0) __PYX_ERR(1, 578, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_61fuse_releasedir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_releasedir_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_releasedir_async, __pyx_t_3) < 0) __PYX_ERR(1, 607, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_64fuse_fsyncdir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_fsyncdir_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_fsyncdir_async, __pyx_t_3) < 0) __PYX_ERR(1, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_67fuse_statfs_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_statfs_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__25)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_statfs_async, __pyx_t_3) < 0) __PYX_ERR(1, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_70fuse_setxattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_setxattr_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_setxattr_async, __pyx_t_3) < 0) __PYX_ERR(1, 681, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_73fuse_getxattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_getxattr_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__27)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_getxattr_async, __pyx_t_3) < 0) __PYX_ERR(1, 726, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_76fuse_listxattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_listxattr_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_listxattr_async, __pyx_t_3) < 0) __PYX_ERR(1, 759, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_79fuse_removexattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_removexattr_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_removexattr_async, __pyx_t_3) < 0) __PYX_ERR(1, 797, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_82fuse_access_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_access_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__31)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_access_async, __pyx_t_3) < 0) __PYX_ERR(1, 819, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/handlers.pxi":848 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_85fuse_create_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_fuse_create_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_create_async, __pyx_t_3) < 0) __PYX_ERR(1, 848, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/internal.pxi":114 * raise * * def _notify_loop(): # <<<<<<<<<<<<<< * '''Process async invalidate_entry calls.''' * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_88_notify_loop, 0, __pyx_n_s_notify_loop, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_notify_loop, __pyx_t_3) < 0) __PYX_ERR(2, 114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11_WorkerData_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_WorkerData___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3__WorkerData->tp_dict, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; PyType_Modified(__pyx_ptype_7pyfuse3__WorkerData); /* "(tree fragment)":16 * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11_WorkerData_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_WorkerData___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3__WorkerData->tp_dict, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; PyType_Modified(__pyx_ptype_7pyfuse3__WorkerData); /* "src/internal.pxi":201 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_90_wait_fuse_readable, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_wait_fuse_readable, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wait_fuse_readable, __pyx_t_3) < 0) __PYX_ERR(2, 201, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/internal.pxi":229 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_async_wrapper); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_93_session_loop, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_session_loop, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_session_loop, __pyx_t_5) < 0) __PYX_ERR(2, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":143 * cdef readonly mode_t umask * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("RequestContext instances can't be pickled") * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_14RequestContext_1__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RequestContext___getstate, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_RequestContext->tp_dict, __pyx_n_s_getstate, __pyx_t_5) < 0) __PYX_ERR(3, 143, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_RequestContext); /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_14RequestContext_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RequestContext___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_RequestContext->tp_dict, __pyx_n_s_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_RequestContext); /* "(tree fragment)":16 * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_14RequestContext_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RequestContext___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_RequestContext->tp_dict, __pyx_n_s_setstate_cython, __pyx_t_5) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_RequestContext); /* "pyfuse3.pyx":171 * self.update_size = False * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("SetattrFields instances can't be pickled") * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13SetattrFields_3__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SetattrFields___getstate, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_SetattrFields->tp_dict, __pyx_n_s_getstate, __pyx_t_5) < 0) __PYX_ERR(3, 171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_SetattrFields); /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13SetattrFields_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SetattrFields___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13SetattrFields_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SetattrFields___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_5) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":341 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_3__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EntryAttributes___getstate, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_EntryAttributes->tp_dict, __pyx_n_s_getstate, __pyx_t_5) < 0) __PYX_ERR(3, 341, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_EntryAttributes); /* "pyfuse3.pyx":350 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_5__setstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EntryAttributes___setstate, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_EntryAttributes->tp_dict, __pyx_n_s_setstate, __pyx_t_5) < 0) __PYX_ERR(3, 350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_EntryAttributes); /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EntryAttributes___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EntryAttributes___setstate_cytho, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_5) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_8FileInfo_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_FileInfo___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_8FileInfo_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_FileInfo___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_5) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":473 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_3__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_StatvfsData___getstate, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_StatvfsData->tp_dict, __pyx_n_s_getstate, __pyx_t_5) < 0) __PYX_ERR(3, 473, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_StatvfsData); /* "pyfuse3.pyx":481 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_5__setstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_StatvfsData___setstate, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_7pyfuse3_StatvfsData->tp_dict, __pyx_n_s_setstate, __pyx_t_5) < 0) __PYX_ERR(3, 481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_7pyfuse3_StatvfsData); /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_StatvfsData___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_StatvfsData___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_5) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_9FUSEError_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_FUSEError___reduce_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_9FUSEError_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_FUSEError___setstate_cython, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_5) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":513 * * * def listdir(path): # <<<<<<<<<<<<<< * '''Like `os.listdir`, but releases the GIL. * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_96listdir, 0, __pyx_n_s_listdir, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_listdir, __pyx_t_5) < 0) __PYX_ERR(3, 513, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":562 * * * def syncfs(path): # <<<<<<<<<<<<<< * '''Sync filesystem mounted at *path* * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_98syncfs, 0, __pyx_n_s_syncfs, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_syncfs, __pyx_t_5) < 0) __PYX_ERR(3, 562, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":581 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_100setxattr, 0, __pyx_n_s_setxattr, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__113); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setxattr, __pyx_t_5) < 0) __PYX_ERR(3, 581, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":632 * * * def getxattr(path, name, size_t size_guess=128, namespace='user'): # <<<<<<<<<<<<<< * '''Get extended attribute * */ __pyx_t_5 = __Pyx_PyInt_FromSize_t(((size_t)0x80)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __Pyx_INCREF(((PyObject*)__pyx_n_u_user)); __Pyx_GIVEREF(((PyObject*)__pyx_n_u_user)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject*)__pyx_n_u_user)); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_102getxattr, 0, __pyx_n_s_getxattr, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_getxattr, __pyx_t_5) < 0) __PYX_ERR(3, 632, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":712 * * * default_options = frozenset(('default_permissions',)) # <<<<<<<<<<<<<< * * def init(ops, mountpoint, options=default_options): */ __pyx_t_5 = __Pyx_PyFrozenSet_New(__pyx_tuple__116); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_default_options, __pyx_t_5) < 0) __PYX_ERR(3, 712, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":714 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_104init, 0, __pyx_n_s_init, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults), 1)) __PYX_ERR(3, 714, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_default_options); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_5)->__pyx_arg_options = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_7pyfuse3_128__defaults__); if (PyDict_SetItem(__pyx_d, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(3, 714, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3.pyx":770 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_async_wrapper); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "pyfuse3.pyx":771 * * @async_wrapper * async def main(int min_tasks=1, int max_tasks=99): # <<<<<<<<<<<<<< * '''Run FUSE main loop''' * */ __pyx_t_2 = __Pyx_PyInt_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(((int)99)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pyfuse3.pyx":770 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_106main, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_main, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_main, __pyx_t_6) < 0) __PYX_ERR(3, 770, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":792 * * * def terminate(): # <<<<<<<<<<<<<< * '''Terminate FUSE main loop. * */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_109terminate, 0, __pyx_n_s_terminate, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_terminate, __pyx_t_6) < 0) __PYX_ERR(3, 792, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":807 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_111close, 0, __pyx_n_s_close, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_tuple__123); if (PyDict_SetItem(__pyx_d, __pyx_n_s_close, __pyx_t_6) < 0) __PYX_ERR(3, 807, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":840 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_113invalidate_inode, 0, __pyx_n_s_invalidate_inode, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_tuple__126); if (PyDict_SetItem(__pyx_d, __pyx_n_s_invalidate_inode, __pyx_t_6) < 0) __PYX_ERR(3, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":869 * * * def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): # <<<<<<<<<<<<<< * '''Invalidate directory entry * */ __pyx_t_6 = __Pyx_PyInt_From_fuse_ino_t(((fuse_ino_t)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_115invalidate_entry, 0, __pyx_n_s_invalidate_entry, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_invalidate_entry, __pyx_t_6) < 0) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":925 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_117invalidate_entry_async, 0, __pyx_n_s_invalidate_entry_async, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_tuple__131); if (PyDict_SetItem(__pyx_d, __pyx_n_s_invalidate_entry_async, __pyx_t_6) < 0) __PYX_ERR(3, 925, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":961 * * * def notify_store(inode, offset, data): # <<<<<<<<<<<<<< * '''Store data in kernel page cache * */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_119notify_store, 0, __pyx_n_s_notify_store, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_notify_store, __pyx_t_6) < 0) __PYX_ERR(3, 961, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":1005 * * * def get_sup_groups(pid): # <<<<<<<<<<<<<< * '''Return supplementary group ids of *pid* * */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_121get_sup_groups, 0, __pyx_n_s_get_sup_groups, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 1005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_sup_groups, __pyx_t_6) < 0) __PYX_ERR(3, 1005, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":1028 * * * def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): # <<<<<<<<<<<<<< * '''Report a directory entry in response to a `~Operations.readdir` request. * */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_123readdir_reply, 0, __pyx_n_s_readdir_reply, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_readdir_reply, __pyx_t_6) < 0) __PYX_ERR(3, 1028, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "(tree fragment)":1 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_125__pyx_unpickle__WorkerData, 0, __pyx_n_s_pyx_unpickle__WorkerData, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle__WorkerData, __pyx_t_6) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "(tree fragment)":11 * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'): */ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_127__pyx_unpickle_RequestContext, 0, __pyx_n_s_pyx_unpickle_RequestContext, NULL, __pyx_n_s_pyfuse3, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RequestContext, __pyx_t_6) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3.pyx":1 * ''' # <<<<<<<<<<<<<< * pyfuse3.pyx * */ __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_6) < 0) __PYX_ERR(3, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); if (__pyx_m) { if (__pyx_d && stringtab_initialized) { __Pyx_AddTraceback("init pyfuse3", __pyx_clineno, __pyx_lineno, __pyx_filename); } #if !CYTHON_USE_MODULE_STATE Py_CLEAR(__pyx_m); #else Py_DECREF(__pyx_m); if (pystate_addmodule_run) { PyObject *tp, *value, *tb; PyErr_Fetch(&tp, &value, &tb); PyState_RemoveModule(&__pyx_moduledef); PyErr_Restore(tp, value, tb); } #endif } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pyfuse3"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #elif PY_MAJOR_VERSION >= 3 return __pyx_m; #else return; #endif } /* #### Code section: cleanup_globals ### */ /* #### Code section: cleanup_module ### */ /* #### Code section: main_method ### */ /* #### Code section: utility_code_pragmas ### */ #ifdef _MSC_VER #pragma warning( push ) /* Warning 4127: conditional expression is constant * Cython uses constant conditional expressions to allow in inline functions to be optimized at * compile-time, so this warning is not useful */ #pragma warning( disable : 4127 ) #endif /* #### Code section: utility_code_def ### */ /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyErrExceptionMatches */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; i= 0x030C00A6 PyObject *current_exception = tstate->current_exception; if (unlikely(!current_exception)) return 0; exc_type = (PyObject*) Py_TYPE(current_exception); if (exc_type == err) return 1; #else exc_type = tstate->curexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; #endif #if CYTHON_AVOID_BORROWED_REFS Py_INCREF(exc_type); #endif if (unlikely(PyTuple_Check(err))) { result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); } else { result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(exc_type); #endif return result; } #endif /* PyErrFetchRestore */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { #if PY_VERSION_HEX >= 0x030C00A6 PyObject *tmp_value; assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value))); if (value) { #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb)) #endif PyException_SetTraceback(value, tb); } tmp_value = tstate->current_exception; tstate->current_exception = value; Py_XDECREF(tmp_value); #else PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #endif } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if PY_VERSION_HEX >= 0x030C00A6 PyObject* exc_value; exc_value = tstate->current_exception; tstate->current_exception = 0; *value = exc_value; *type = NULL; *tb = NULL; if (exc_value) { *type = (PyObject*) Py_TYPE(exc_value); Py_INCREF(*type); #if CYTHON_COMPILING_IN_CPYTHON *tb = ((PyBaseExceptionObject*) exc_value)->traceback; Py_XINCREF(*tb); #else *tb = PyException_GetTraceback(exc_value); #endif } #else *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #endif } #endif /* PyObjectGetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #endif /* PyObjectGetAttrStrNoError */ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) __Pyx_PyErr_Clear(); } static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { PyObject *result; #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); } #endif result = __Pyx_PyObject_GetAttrStr(obj, attr_name); if (unlikely(!result)) { __Pyx_PyObject_GetAttrStr_ClearAttributeError(); } return result; } /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name); if (unlikely(!result) && !PyErr_Occurred()) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* TupleAndListFromArray */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) { PyObject *v; Py_ssize_t i; for (i = 0; i < length; i++) { v = dest[i] = src[i]; Py_INCREF(v); } } static CYTHON_INLINE PyObject * __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) { PyObject *res; if (n <= 0) { Py_INCREF(__pyx_empty_tuple); return __pyx_empty_tuple; } res = PyTuple_New(n); if (unlikely(res == NULL)) return NULL; __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n); return res; } static CYTHON_INLINE PyObject * __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) { PyObject *res; if (n <= 0) { return PyList_New(0); } res = PyList_New(n); if (unlikely(res == NULL)) return NULL; __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n); return res; } #endif /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result; #if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000) Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { return (equals == Py_NE); } #endif result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } #if CYTHON_USE_UNICODE_INTERNALS { Py_hash_t hash1, hash2; #if CYTHON_PEP393_ENABLED hash1 = ((PyASCIIObject*)s1)->hash; hash2 = ((PyASCIIObject*)s2)->hash; #else hash1 = ((PyUnicodeObject*)s1)->hash; hash2 = ((PyUnicodeObject*)s2)->hash; #endif if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { goto return_ne; } } #endif kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* fastcall */ #if CYTHON_METH_FASTCALL static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s) { Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames); for (i = 0; i < n; i++) { if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i]; } for (i = 0; i < n; i++) { int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ); if (unlikely(eq != 0)) { if (unlikely(eq < 0)) return NULL; // error return kwvalues[i]; } } return NULL; // not found (no exception set) } #endif /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* KeywordStringCheck */ static int __Pyx_CheckKeywordStrings( PyObject *kw, const char* function_name, int kw_allowed) { PyObject* key = 0; Py_ssize_t pos = 0; #if CYTHON_COMPILING_IN_PYPY if (!kw_allowed && PyDict_Next(kw, &pos, &key, 0)) goto invalid_keyword; return 1; #else if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) { if (unlikely(PyTuple_GET_SIZE(kw) == 0)) return 1; if (!kw_allowed) { key = PyTuple_GET_ITEM(kw, 0); goto invalid_keyword; } #if PY_VERSION_HEX < 0x03090000 for (pos = 0; pos < PyTuple_GET_SIZE(kw); pos++) { key = PyTuple_GET_ITEM(kw, pos); if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type; } #endif return 1; } while (PyDict_Next(kw, &pos, &key, 0)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyString_Check(key))) #endif if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type; } if (!kw_allowed && unlikely(key)) goto invalid_keyword; return 1; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); return 0; #endif invalid_keyword: #if PY_MAJOR_VERSION < 3 PyErr_Format(PyExc_TypeError, "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else PyErr_Format(PyExc_TypeError, "%s() got an unexpected keyword argument '%U'", function_name, key); #endif return 0; } /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { __Pyx_PyThreadState_declare CYTHON_UNUSED_VAR(cause); Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if PY_VERSION_HEX >= 0x030C00A6 PyException_SetTraceback(value, tb); #elif CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #else PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject *const *kwvalues, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)); while (1) { if (kwds_is_tuple) { if (pos >= PyTuple_GET_SIZE(kwds)) break; key = PyTuple_GET_ITEM(kwds, pos); value = kwvalues[pos]; pos++; } else { if (!PyDict_Next(kwds, &pos, &key, &value)) break; } name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = ( #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : #endif PyUnicode_Compare(**name, key) ); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: #if PY_MAJOR_VERSION < 3 PyErr_Format(PyExc_TypeError, "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else PyErr_Format(PyExc_TypeError, "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyFunctionFastCall */ #if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { PyFrameObject *f; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject **fastlocals; Py_ssize_t i; PyObject *result; assert(globals != NULL); /* XXX Perhaps we should create a specialized PyFrame_New() that doesn't take locals, but does take builtins without sanity checking them. */ assert(tstate != NULL); f = PyFrame_New(tstate, co, globals, NULL); if (f == NULL) { return NULL; } fastlocals = __Pyx_PyFrame_GetLocalsplus(f); for (i = 0; i < na; i++) { Py_INCREF(*args); fastlocals[i] = *args++; } result = PyEval_EvalFrameEx(f,0); ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *closure; #if PY_MAJOR_VERSION >= 3 PyObject *kwdefs; #endif PyObject *kwtuple, **k; PyObject **d; Py_ssize_t nd; Py_ssize_t nk; PyObject *result; assert(kwargs == NULL || PyDict_Check(kwargs)); nk = kwargs ? PyDict_Size(kwargs) : 0; if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) { return NULL; } if ( #if PY_MAJOR_VERSION >= 3 co->co_kwonlyargcount == 0 && #endif likely(kwargs == NULL || nk == 0) && co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { if (argdefs == NULL && co->co_argcount == nargs) { result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); goto done; } else if (nargs == 0 && argdefs != NULL && co->co_argcount == Py_SIZE(argdefs)) { /* function called with no arguments, but all parameters have a default value: use default values as arguments .*/ args = &PyTuple_GET_ITEM(argdefs, 0); result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); goto done; } } if (kwargs != NULL) { Py_ssize_t pos, i; kwtuple = PyTuple_New(2 * nk); if (kwtuple == NULL) { result = NULL; goto done; } k = &PyTuple_GET_ITEM(kwtuple, 0); pos = i = 0; while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { Py_INCREF(k[i]); Py_INCREF(k[i+1]); i += 2; } nk = i / 2; } else { kwtuple = NULL; k = NULL; } closure = PyFunction_GET_CLOSURE(func); #if PY_MAJOR_VERSION >= 3 kwdefs = PyFunction_GET_KW_DEFAULTS(func); #endif if (argdefs != NULL) { d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } else { d = NULL; nd = 0; } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif Py_XDECREF(kwtuple); done: Py_LeaveRecursiveCall(); return result; } #endif /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectFastCall */ static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) { PyObject *argstuple; PyObject *result; size_t i; argstuple = PyTuple_New((Py_ssize_t)nargs); if (unlikely(!argstuple)) return NULL; for (i = 0; i < nargs; i++) { Py_INCREF(args[i]); PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]); } result = __Pyx_PyObject_Call(func, argstuple, kwargs); Py_DECREF(argstuple); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) { Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs); #if CYTHON_COMPILING_IN_CPYTHON if (nargs == 0 && kwargs == NULL) { #if defined(__Pyx_CyFunction_USED) && defined(NDEBUG) if (__Pyx_IsCyOrPyCFunction(func)) #else if (PyCFunction_Check(func)) #endif { if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } } else if (nargs == 1 && kwargs == NULL) { if (PyCFunction_Check(func)) { if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, args[0]); } } } #endif #if PY_VERSION_HEX < 0x030800B1 #if CYTHON_FAST_PYCCALL if (PyCFunction_Check(func)) { if (kwargs) { return _PyCFunction_FastCallDict(func, args, nargs, kwargs); } else { return _PyCFunction_FastCallKeywords(func, args, nargs, NULL); } } #if PY_VERSION_HEX >= 0x030700A1 if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) { return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL); } #endif #endif #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs); } #endif #endif #if CYTHON_VECTORCALL vectorcallfunc f = _PyVectorcall_Function(func); if (f) { return f(func, args, (size_t)nargs, kwargs); } #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL if (__Pyx_CyFunction_CheckExact(func)) { __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func); if (f) return f(func, args, (size_t)nargs, kwargs); } #endif if (nargs == 0) { return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs); } return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs); } /* PyObjectCallNoArg */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { PyObject *arg = NULL; return __Pyx_PyObject_FastCall(func, (&arg)+1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* PyDictVersioning */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } else if (unlikely(PyErr_Occurred())) { return NULL; } #elif CYTHON_COMPILING_IN_LIMITED_API if (unlikely(!__pyx_m)) { return NULL; } result = PyObject_GetAttr(__pyx_m, name); if (likely(result)) { return result; } #else result = PyDict_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } #endif #else result = PyObject_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* ArgTypeTest */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { __Pyx_TypeName type_name; __Pyx_TypeName obj_type_name; if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } else if (exact) { #if PY_MAJOR_VERSION == 2 if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(__Pyx_TypeCheck(obj, type))) return 1; } type_name = __Pyx_PyType_GetName(type); obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME ", got " __Pyx_FMT_TYPENAME ")", name, type_name, obj_type_name); __Pyx_DECREF_TypeName(type_name); __Pyx_DECREF_TypeName(obj_type_name); return 0; } /* FixUpExtensionType */ #if CYTHON_USE_TYPE_SPECS static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) { #if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API CYTHON_UNUSED_VAR(spec); CYTHON_UNUSED_VAR(type); #else const PyType_Slot *slot = spec->slots; while (slot && slot->slot && slot->slot != Py_tp_members) slot++; if (slot && slot->slot == Py_tp_members) { int changed = 0; #if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON) const #endif PyMemberDef *memb = (PyMemberDef*) slot->pfunc; while (memb && memb->name) { if (memb->name[0] == '_' && memb->name[1] == '_') { #if PY_VERSION_HEX < 0x030900b1 if (strcmp(memb->name, "__weaklistoffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); type->tp_weaklistoffset = memb->offset; changed = 1; } else if (strcmp(memb->name, "__dictoffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); type->tp_dictoffset = memb->offset; changed = 1; } #if CYTHON_METH_FASTCALL else if (strcmp(memb->name, "__vectorcalloffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); #if PY_VERSION_HEX >= 0x030800b4 type->tp_vectorcall_offset = memb->offset; #else type->tp_print = (printfunc) memb->offset; #endif changed = 1; } #endif #else if ((0)); #endif #if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON else if (strcmp(memb->name, "__module__") == 0) { PyObject *descr; assert(memb->type == T_OBJECT); assert(memb->flags == 0 || memb->flags == READONLY); descr = PyDescr_NewMember(type, memb); if (unlikely(!descr)) return -1; if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) { Py_DECREF(descr); return -1; } Py_DECREF(descr); changed = 1; } #endif } memb++; } if (changed) PyType_Modified(type); } #endif return 0; } #endif /* FetchSharedCythonModule */ static PyObject *__Pyx_FetchSharedCythonABIModule(void) { PyObject *abi_module = PyImport_AddModule((char*) __PYX_ABI_MODULE_NAME); if (unlikely(!abi_module)) return NULL; Py_INCREF(abi_module); return abi_module; } /* FetchCommonType */ static int __Pyx_VerifyCachedType(PyObject *cached_type, const char *name, Py_ssize_t basicsize, Py_ssize_t expected_basicsize) { if (!PyType_Check(cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", name); return -1; } if (basicsize != expected_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", name); return -1; } return 0; } #if !CYTHON_USE_TYPE_SPECS static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* abi_module; const char* object_name; PyTypeObject *cached_type = NULL; abi_module = __Pyx_FetchSharedCythonABIModule(); if (!abi_module) return NULL; object_name = strrchr(type->tp_name, '.'); object_name = object_name ? object_name+1 : type->tp_name; cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name); if (cached_type) { if (__Pyx_VerifyCachedType( (PyObject *)cached_type, object_name, cached_type->tp_basicsize, type->tp_basicsize) < 0) { goto bad; } goto done; } if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0) goto bad; Py_INCREF(type); cached_type = type; done: Py_DECREF(abi_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } #else static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) { PyObject *abi_module, *cached_type = NULL; const char* object_name = strrchr(spec->name, '.'); object_name = object_name ? object_name+1 : spec->name; abi_module = __Pyx_FetchSharedCythonABIModule(); if (!abi_module) return NULL; cached_type = PyObject_GetAttrString(abi_module, object_name); if (cached_type) { Py_ssize_t basicsize; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_basicsize; py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__"); if (unlikely(!py_basicsize)) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; #else basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1; #endif if (__Pyx_VerifyCachedType( cached_type, object_name, basicsize, spec->basicsize) < 0) { goto bad; } goto done; } if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); CYTHON_UNUSED_VAR(module); cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases); if (unlikely(!cached_type)) goto bad; if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad; if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad; done: Py_DECREF(abi_module); assert(cached_type == NULL || PyType_Check(cached_type)); return (PyTypeObject *) cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } #endif /* GetTopmostException */ #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) { _PyErr_StackItem *exc_info = tstate->exc_info; while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } return exc_info; } #endif /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); PyObject *exc_value = exc_info->exc_value; if (exc_value == NULL || exc_value == Py_None) { *value = NULL; *type = NULL; *tb = NULL; } else { *value = exc_value; Py_INCREF(*value); *type = (PyObject*) Py_TYPE(exc_value); Py_INCREF(*type); *tb = PyException_GetTraceback(exc_value); } #elif CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); *type = exc_info->exc_type; *value = exc_info->exc_value; *tb = exc_info->exc_traceback; Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); #else *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); #endif } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 _PyErr_StackItem *exc_info = tstate->exc_info; PyObject *tmp_value = exc_info->exc_value; exc_info->exc_value = value; Py_XDECREF(tmp_value); Py_XDECREF(type); Py_XDECREF(tb); #else PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = type; exc_info->exc_value = value; exc_info->exc_traceback = tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #endif } #endif /* SwapException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 _PyErr_StackItem *exc_info = tstate->exc_info; tmp_value = exc_info->exc_value; exc_info->exc_value = *value; if (tmp_value == NULL || tmp_value == Py_None) { Py_XDECREF(tmp_value); tmp_value = NULL; tmp_type = NULL; tmp_tb = NULL; } else { tmp_type = (PyObject*) Py_TYPE(tmp_value); Py_INCREF(tmp_type); #if CYTHON_COMPILING_IN_CPYTHON tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback; Py_XINCREF(tmp_tb); #else tmp_tb = PyException_GetTraceback(tmp_value); #endif } #elif CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = *type; exc_info->exc_value = *value; exc_info->exc_traceback = *tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; #endif *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* PyObjectCall2Args */ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args[3] = {NULL, arg1, arg2}; return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* PyObjectCallOneArg */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *args[2] = {NULL, arg}; return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* PyObjectGetMethod */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { PyObject *attr; #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP __Pyx_TypeName type_name; PyTypeObject *tp = Py_TYPE(obj); PyObject *descr; descrgetfunc f = NULL; PyObject **dictptr, *dict; int meth_found = 0; assert (*method == NULL); if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; } if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { return 0; } descr = _PyType_Lookup(tp, name); if (likely(descr != NULL)) { Py_INCREF(descr); #if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)) #elif PY_MAJOR_VERSION >= 3 #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type))) #endif #else #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr))) #endif #endif { meth_found = 1; } else { f = Py_TYPE(descr)->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } } } dictptr = _PyObject_GetDictPtr(obj); if (dictptr != NULL && (dict = *dictptr) != NULL) { Py_INCREF(dict); attr = __Pyx_PyDict_GetItemStr(dict, name); if (attr != NULL) { Py_INCREF(attr); Py_DECREF(dict); Py_XDECREF(descr); goto try_unpack; } Py_DECREF(dict); } if (meth_found) { *method = descr; return 1; } if (f != NULL) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } if (likely(descr != NULL)) { *method = descr; return 0; } type_name = __Pyx_PyType_GetName(tp); PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", type_name, name); #else "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", type_name, PyString_AS_STRING(name)); #endif __Pyx_DECREF_TypeName(type_name); return 0; #else attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; #endif try_unpack: #if CYTHON_UNPACK_METHODS if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { PyObject *function = PyMethod_GET_FUNCTION(attr); Py_INCREF(function); Py_DECREF(attr); *method = function; return 1; } #endif *method = attr; return 0; } /* PyObjectCallMethod1 */ static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); Py_DECREF(method); return result; } static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { PyObject *method = NULL, *result; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_Call2Args(method, obj, arg); Py_DECREF(method); return result; } if (unlikely(!method)) return NULL; return __Pyx__PyObject_CallMethod1(method, arg); } /* CoroutineBase */ #include #if PY_VERSION_HEX >= 0x030b00a6 #ifndef Py_BUILD_CORE #define Py_BUILD_CORE 1 #endif #include "internal/pycore_frame.h" #endif #define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) { PyObject *et, *ev, *tb; PyObject *value = NULL; CYTHON_UNUSED_VAR(__pyx_tstate); __Pyx_ErrFetch(&et, &ev, &tb); if (!et) { Py_XDECREF(tb); Py_XDECREF(ev); Py_INCREF(Py_None); *pvalue = Py_None; return 0; } if (likely(et == PyExc_StopIteration)) { if (!ev) { Py_INCREF(Py_None); value = Py_None; } #if PY_VERSION_HEX >= 0x030300A0 else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) { value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); Py_DECREF(ev); } #endif else if (unlikely(PyTuple_Check(ev))) { if (PyTuple_GET_SIZE(ev) >= 1) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS value = PyTuple_GET_ITEM(ev, 0); Py_INCREF(value); #else value = PySequence_ITEM(ev, 0); #endif } else { Py_INCREF(Py_None); value = Py_None; } Py_DECREF(ev); } else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { value = ev; } if (likely(value)) { Py_XDECREF(tb); Py_DECREF(et); *pvalue = value; return 0; } } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) { __Pyx_ErrRestore(et, ev, tb); return -1; } PyErr_NormalizeException(&et, &ev, &tb); if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) { __Pyx_ErrRestore(et, ev, tb); return -1; } Py_XDECREF(tb); Py_DECREF(et); #if PY_VERSION_HEX >= 0x030300A0 value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); Py_DECREF(ev); #else { PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args); Py_DECREF(ev); if (likely(args)) { value = PySequence_GetItem(args, 0); Py_DECREF(args); } if (unlikely(!value)) { __Pyx_ErrRestore(NULL, NULL, NULL); Py_INCREF(Py_None); value = Py_None; } } #endif *pvalue = value; return 0; } static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) { #if PY_VERSION_HEX >= 0x030B00a4 Py_CLEAR(exc_state->exc_value); #else PyObject *t, *v, *tb; t = exc_state->exc_type; v = exc_state->exc_value; tb = exc_state->exc_traceback; exc_state->exc_type = NULL; exc_state->exc_value = NULL; exc_state->exc_traceback = NULL; Py_XDECREF(t); Py_XDECREF(v); Py_XDECREF(tb); #endif } #define __Pyx_Coroutine_AlreadyRunningError(gen) (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL) static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) { const char *msg; CYTHON_MAYBE_UNUSED_VAR(gen); if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check((PyObject*)gen)) { msg = "coroutine already executing"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) { msg = "async generator already executing"; #endif } else { msg = "generator already executing"; } PyErr_SetString(PyExc_ValueError, msg); } #define __Pyx_Coroutine_NotStartedError(gen) (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL) static void __Pyx__Coroutine_NotStartedError(PyObject *gen) { const char *msg; CYTHON_MAYBE_UNUSED_VAR(gen); if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check(gen)) { msg = "can't send non-None value to a just-started coroutine"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact(gen)) { msg = "can't send non-None value to a just-started async generator"; #endif } else { msg = "can't send non-None value to a just-started generator"; } PyErr_SetString(PyExc_TypeError, msg); } #define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing) (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL) static void __Pyx__Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) { CYTHON_MAYBE_UNUSED_VAR(gen); CYTHON_MAYBE_UNUSED_VAR(closing); #ifdef __Pyx_Coroutine_USED if (!closing && __Pyx_Coroutine_Check(gen)) { PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine"); } else #endif if (value) { #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(gen)) PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration); else #endif PyErr_SetNone(PyExc_StopIteration); } } static PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) { __Pyx_PyThreadState_declare PyThreadState *tstate; __Pyx_ExcInfoStruct *exc_state; PyObject *retval; assert(!self->is_running); if (unlikely(self->resume_label == 0)) { if (unlikely(value && value != Py_None)) { return __Pyx_Coroutine_NotStartedError((PyObject*)self); } } if (unlikely(self->resume_label == -1)) { return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing); } #if CYTHON_FAST_THREAD_STATE __Pyx_PyThreadState_assign tstate = __pyx_tstate; #else tstate = __Pyx_PyThreadState_Current; #endif exc_state = &self->gi_exc_state; if (exc_state->exc_value) { #if CYTHON_COMPILING_IN_PYPY #else PyObject *exc_tb; #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON exc_tb = PyException_GetTraceback(exc_state->exc_value); #elif PY_VERSION_HEX >= 0x030B00a4 exc_tb = ((PyBaseExceptionObject*) exc_state->exc_value)->traceback; #else exc_tb = exc_state->exc_traceback; #endif if (exc_tb) { PyTracebackObject *tb = (PyTracebackObject *) exc_tb; PyFrameObject *f = tb->tb_frame; assert(f->f_back == NULL); #if PY_VERSION_HEX >= 0x030B00A1 f->f_back = PyThreadState_GetFrame(tstate); #else Py_XINCREF(tstate->frame); f->f_back = tstate->frame; #endif #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON Py_DECREF(exc_tb); #endif } #endif } #if CYTHON_USE_EXC_INFO_STACK exc_state->previous_item = tstate->exc_info; tstate->exc_info = exc_state; #else if (exc_state->exc_type) { __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); } else { __Pyx_Coroutine_ExceptionClear(exc_state); __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); } #endif self->is_running = 1; retval = self->body(self, tstate, value); self->is_running = 0; #if CYTHON_USE_EXC_INFO_STACK exc_state = &self->gi_exc_state; tstate->exc_info = exc_state->previous_item; exc_state->previous_item = NULL; __Pyx_Coroutine_ResetFrameBackpointer(exc_state); #endif return retval; } static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) { #if CYTHON_COMPILING_IN_PYPY CYTHON_UNUSED_VAR(exc_state); #else PyObject *exc_tb; #if PY_VERSION_HEX >= 0x030B00a4 if (!exc_state->exc_value) return; exc_tb = PyException_GetTraceback(exc_state->exc_value); #else exc_tb = exc_state->exc_traceback; #endif if (likely(exc_tb)) { PyTracebackObject *tb = (PyTracebackObject *) exc_tb; PyFrameObject *f = tb->tb_frame; Py_CLEAR(f->f_back); #if PY_VERSION_HEX >= 0x030B00a4 Py_DECREF(exc_tb); #endif } #endif } static CYTHON_INLINE PyObject *__Pyx_Coroutine_MethodReturn(PyObject* gen, PyObject *retval) { CYTHON_MAYBE_UNUSED_VAR(gen); if (unlikely(!retval)) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (!__Pyx_PyErr_Occurred()) { PyObject *exc = PyExc_StopIteration; #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(gen)) exc = __Pyx_PyExc_StopAsyncIteration; #endif __Pyx_PyErr_SetNone(exc); } } return retval; } #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) static CYTHON_INLINE PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) { #if PY_VERSION_HEX <= 0x030A00A1 return _PyGen_Send(gen, arg); #else PyObject *result; if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) { if (PyAsyncGen_CheckExact(gen)) { assert(result == Py_None); PyErr_SetNone(PyExc_StopAsyncIteration); } else if (result == Py_None) { PyErr_SetNone(PyExc_StopIteration); } else { _PyGen_SetStopIterationValue(result); } Py_CLEAR(result); } return result; #endif } #endif static CYTHON_INLINE PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) { PyObject *ret; PyObject *val = NULL; __Pyx_Coroutine_Undelegate(gen); __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val); ret = __Pyx_Coroutine_SendEx(gen, val, 0); Py_XDECREF(val); return ret; } static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { PyObject *retval; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; PyObject *yf = gen->yieldfrom; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { PyObject *ret; gen->is_running = 1; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_PyAsyncGenASend_CheckExact(yf)) { ret = __Pyx_async_gen_asend_send(yf, value); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyGen_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyCoro_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else #endif { if (value == Py_None) ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf); else ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value); } gen->is_running = 0; if (likely(ret)) { return ret; } retval = __Pyx_Coroutine_FinishDelegation(gen); } else { retval = __Pyx_Coroutine_SendEx(gen, value, 0); } return __Pyx_Coroutine_MethodReturn(self, retval); } static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) { PyObject *retval = NULL; int err = 0; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { retval = __Pyx_Coroutine_Close(yf); if (!retval) return -1; } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { retval = __Pyx_Coroutine_Close(yf); if (!retval) return -1; } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL); if (!retval) return -1; } else #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_PyAsyncGenASend_CheckExact(yf)) { retval = __Pyx_async_gen_asend_close(yf, NULL); } else if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) { retval = __Pyx_async_gen_athrow_close(yf, NULL); } else #endif { PyObject *meth; gen->is_running = 1; meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_close); if (unlikely(!meth)) { if (unlikely(PyErr_Occurred())) { PyErr_WriteUnraisable(yf); } } else { retval = __Pyx_PyObject_CallNoArg(meth); Py_DECREF(meth); if (unlikely(!retval)) err = -1; } gen->is_running = 0; } Py_XDECREF(retval); return err; } static PyObject *__Pyx_Generator_Next(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; PyObject *yf = gen->yieldfrom; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { PyObject *ret; gen->is_running = 1; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Generator_Next(yf); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyGen_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { ret = __Pyx_Coroutine_Send(yf, Py_None); } else #endif ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf); gen->is_running = 0; if (likely(ret)) { return ret; } return __Pyx_Coroutine_FinishDelegation(gen); } return __Pyx_Coroutine_SendEx(gen, Py_None, 0); } static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) { CYTHON_UNUSED_VAR(arg); return __Pyx_Coroutine_Close(self); } static PyObject *__Pyx_Coroutine_Close(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject *retval, *raised_exception; PyObject *yf = gen->yieldfrom; int err = 0; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { Py_INCREF(yf); err = __Pyx_Coroutine_CloseIter(gen, yf); __Pyx_Coroutine_Undelegate(gen); Py_DECREF(yf); } if (err == 0) PyErr_SetNone(PyExc_GeneratorExit); retval = __Pyx_Coroutine_SendEx(gen, NULL, 1); if (unlikely(retval)) { const char *msg; Py_DECREF(retval); if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check(self)) { msg = "coroutine ignored GeneratorExit"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact(self)) { #if PY_VERSION_HEX < 0x03060000 msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)"; #else msg = "async generator ignored GeneratorExit"; #endif #endif } else { msg = "generator ignored GeneratorExit"; } PyErr_SetString(PyExc_RuntimeError, msg); return NULL; } raised_exception = PyErr_Occurred(); if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) { if (raised_exception) PyErr_Clear(); Py_INCREF(Py_None); return Py_None; } return NULL; } static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb, PyObject *args, int close_on_genexit) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject *yf = gen->yieldfrom; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { PyObject *ret; Py_INCREF(yf); if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) { int err = __Pyx_Coroutine_CloseIter(gen, yf); Py_DECREF(yf); __Pyx_Coroutine_Undelegate(gen); if (err < 0) return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); goto throw_here; } gen->is_running = 1; if (0 #ifdef __Pyx_Generator_USED || __Pyx_Generator_CheckExact(yf) #endif #ifdef __Pyx_Coroutine_USED || __Pyx_Coroutine_Check(yf) #endif ) { ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit); #ifdef __Pyx_Coroutine_USED } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit); #endif } else { PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_throw); if (unlikely(!meth)) { Py_DECREF(yf); if (unlikely(PyErr_Occurred())) { gen->is_running = 0; return NULL; } __Pyx_Coroutine_Undelegate(gen); gen->is_running = 0; goto throw_here; } if (likely(args)) { ret = __Pyx_PyObject_Call(meth, args, NULL); } else { PyObject *cargs[4] = {NULL, typ, val, tb}; ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } Py_DECREF(meth); } gen->is_running = 0; Py_DECREF(yf); if (!ret) { ret = __Pyx_Coroutine_FinishDelegation(gen); } return __Pyx_Coroutine_MethodReturn(self, ret); } throw_here: __Pyx_Raise(typ, val, tb, NULL); return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); } static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) { PyObject *typ; PyObject *val = NULL; PyObject *tb = NULL; if (unlikely(!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))) return NULL; return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1); } static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) { #if PY_VERSION_HEX >= 0x030B00a4 Py_VISIT(exc_state->exc_value); #else Py_VISIT(exc_state->exc_type); Py_VISIT(exc_state->exc_value); Py_VISIT(exc_state->exc_traceback); #endif return 0; } static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) { Py_VISIT(gen->closure); Py_VISIT(gen->classobj); Py_VISIT(gen->yieldfrom); return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg); } static int __Pyx_Coroutine_clear(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; Py_CLEAR(gen->closure); Py_CLEAR(gen->classobj); Py_CLEAR(gen->yieldfrom); __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state); #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer); } #endif Py_CLEAR(gen->gi_code); Py_CLEAR(gen->gi_frame); Py_CLEAR(gen->gi_name); Py_CLEAR(gen->gi_qualname); Py_CLEAR(gen->gi_modulename); return 0; } static void __Pyx_Coroutine_dealloc(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject_GC_UnTrack(gen); if (gen->gi_weakreflist != NULL) PyObject_ClearWeakRefs(self); if (gen->resume_label >= 0) { PyObject_GC_Track(self); #if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE if (unlikely(PyObject_CallFinalizerFromDealloc(self))) #else Py_TYPE(gen)->tp_del(self); if (unlikely(Py_REFCNT(self) > 0)) #endif { return; } PyObject_GC_UnTrack(self); } #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { /* We have to handle this case for asynchronous generators right here, because this code has to be between UNTRACK and GC_Del. */ Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer); } #endif __Pyx_Coroutine_clear(self); __Pyx_PyHeapTypeObject_GC_Del(gen); } static void __Pyx_Coroutine_del(PyObject *self) { PyObject *error_type, *error_value, *error_traceback; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; __Pyx_PyThreadState_declare if (gen->resume_label < 0) { return; } #if !CYTHON_USE_TP_FINALIZE assert(self->ob_refcnt == 0); __Pyx_SET_REFCNT(self, 1); #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self; PyObject *finalizer = agen->ag_finalizer; if (finalizer && !agen->ag_closed) { PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self); if (unlikely(!res)) { PyErr_WriteUnraisable(self); } else { Py_DECREF(res); } __Pyx_ErrRestore(error_type, error_value, error_traceback); return; } } #endif if (unlikely(gen->resume_label == 0 && !error_value)) { #ifdef __Pyx_Coroutine_USED #ifdef __Pyx_Generator_USED if (!__Pyx_Generator_CheckExact(self)) #endif { PyObject_GC_UnTrack(self); #if PY_MAJOR_VERSION >= 3 || defined(PyErr_WarnFormat) if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0)) PyErr_WriteUnraisable(self); #else {PyObject *msg; char *cmsg; #if CYTHON_COMPILING_IN_PYPY msg = NULL; cmsg = (char*) "coroutine was never awaited"; #else char *cname; PyObject *qualname; qualname = gen->gi_qualname; cname = PyString_AS_STRING(qualname); msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname); if (unlikely(!msg)) { PyErr_Clear(); cmsg = (char*) "coroutine was never awaited"; } else { cmsg = PyString_AS_STRING(msg); } #endif if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0)) PyErr_WriteUnraisable(self); Py_XDECREF(msg);} #endif PyObject_GC_Track(self); } #endif } else { PyObject *res = __Pyx_Coroutine_Close(self); if (unlikely(!res)) { if (PyErr_Occurred()) PyErr_WriteUnraisable(self); } else { Py_DECREF(res); } } __Pyx_ErrRestore(error_type, error_value, error_traceback); #if !CYTHON_USE_TP_FINALIZE assert(Py_REFCNT(self) > 0); if (likely(--self->ob_refcnt == 0)) { return; } { Py_ssize_t refcnt = Py_REFCNT(self); _Py_NewReference(self); __Pyx_SET_REFCNT(self, refcnt); } #if CYTHON_COMPILING_IN_CPYTHON assert(PyType_IS_GC(Py_TYPE(self)) && _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED); _Py_DEC_REFTOTAL; #endif #ifdef COUNT_ALLOCS --Py_TYPE(self)->tp_frees; --Py_TYPE(self)->tp_allocs; #endif #endif } static PyObject * __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context) { PyObject *name = self->gi_name; CYTHON_UNUSED_VAR(context); if (unlikely(!name)) name = Py_None; Py_INCREF(name); return name; } static int __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(self->gi_name, value); return 0; } static PyObject * __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context) { PyObject *name = self->gi_qualname; CYTHON_UNUSED_VAR(context); if (unlikely(!name)) name = Py_None; Py_INCREF(name); return name; } static int __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(self->gi_qualname, value); return 0; } static PyObject * __Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context) { PyObject *frame = self->gi_frame; CYTHON_UNUSED_VAR(context); if (!frame) { if (unlikely(!self->gi_code)) { Py_RETURN_NONE; } frame = (PyObject *) PyFrame_New( PyThreadState_Get(), /*PyThreadState *tstate,*/ (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (unlikely(!frame)) return NULL; self->gi_frame = frame; } Py_INCREF(frame); return frame; } static __pyx_CoroutineObject *__Pyx__Coroutine_New( PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name) { __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type); if (unlikely(!gen)) return NULL; return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name); } static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name) { gen->body = body; gen->closure = closure; Py_XINCREF(closure); gen->is_running = 0; gen->resume_label = 0; gen->classobj = NULL; gen->yieldfrom = NULL; #if PY_VERSION_HEX >= 0x030B00a4 gen->gi_exc_state.exc_value = NULL; #else gen->gi_exc_state.exc_type = NULL; gen->gi_exc_state.exc_value = NULL; gen->gi_exc_state.exc_traceback = NULL; #endif #if CYTHON_USE_EXC_INFO_STACK gen->gi_exc_state.previous_item = NULL; #endif gen->gi_weakreflist = NULL; Py_XINCREF(qualname); gen->gi_qualname = qualname; Py_XINCREF(name); gen->gi_name = name; Py_XINCREF(module_name); gen->gi_modulename = module_name; Py_XINCREF(code); gen->gi_code = code; gen->gi_frame = NULL; PyObject_GC_Track(gen); return gen; } /* PyObject_GenericGetAttrNoDict */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp); PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", type_name, attr_name); #else "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", type_name, PyString_AS_STRING(attr_name)); #endif __Pyx_DECREF_TypeName(type_name); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { PyObject *descr; PyTypeObject *tp = Py_TYPE(obj); if (unlikely(!PyString_Check(attr_name))) { return PyObject_GenericGetAttr(obj, attr_name); } assert(!tp->tp_dictoffset); descr = _PyType_Lookup(tp, attr_name); if (unlikely(!descr)) { return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); } Py_INCREF(descr); #if PY_MAJOR_VERSION < 3 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) #endif { descrgetfunc f = Py_TYPE(descr)->tp_descr_get; if (unlikely(f)) { PyObject *res = f(descr, obj, (PyObject *)tp); Py_DECREF(descr); return res; } } return descr; } #endif /* PatchModuleWithCoroutine */ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) { #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) int result; PyObject *globals, *result_obj; globals = PyDict_New(); if (unlikely(!globals)) goto ignore; result = PyDict_SetItemString(globals, "_cython_coroutine_type", #ifdef __Pyx_Coroutine_USED (PyObject*)__pyx_CoroutineType); #else Py_None); #endif if (unlikely(result < 0)) goto ignore; result = PyDict_SetItemString(globals, "_cython_generator_type", #ifdef __Pyx_Generator_USED (PyObject*)__pyx_GeneratorType); #else Py_None); #endif if (unlikely(result < 0)) goto ignore; if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore; if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore; result_obj = PyRun_String(py_code, Py_file_input, globals, globals); if (unlikely(!result_obj)) goto ignore; Py_DECREF(result_obj); Py_DECREF(globals); return module; ignore: Py_XDECREF(globals); PyErr_WriteUnraisable(module); if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) { Py_DECREF(module); module = NULL; } #else py_code++; #endif return module; } /* PatchGeneratorABC */ #ifndef CYTHON_REGISTER_ABCS #define CYTHON_REGISTER_ABCS 1 #endif #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) static PyObject* __Pyx_patch_abc_module(PyObject *module); static PyObject* __Pyx_patch_abc_module(PyObject *module) { module = __Pyx_Coroutine_patch_module( module, "" "if _cython_generator_type is not None:\n" " try: Generator = _module.Generator\n" " except AttributeError: pass\n" " else: Generator.register(_cython_generator_type)\n" "if _cython_coroutine_type is not None:\n" " try: Coroutine = _module.Coroutine\n" " except AttributeError: pass\n" " else: Coroutine.register(_cython_coroutine_type)\n" ); return module; } #endif static int __Pyx_patch_abc(void) { #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) static int abc_patched = 0; if (CYTHON_REGISTER_ABCS && !abc_patched) { PyObject *module; module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections"); if (unlikely(!module)) { PyErr_WriteUnraisable(NULL); if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, ((PY_MAJOR_VERSION >= 3) ? "Cython module failed to register with collections.abc module" : "Cython module failed to register with collections module"), 1) < 0)) { return -1; } } else { module = __Pyx_patch_abc_module(module); abc_patched = 1; if (unlikely(!module)) return -1; Py_DECREF(module); } module = PyImport_ImportModule("backports_abc"); if (module) { module = __Pyx_patch_abc_module(module); Py_XDECREF(module); } if (!module) { PyErr_Clear(); } } #else if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL); #endif return 0; } /* Coroutine */ static void __Pyx_CoroutineAwait_dealloc(PyObject *self) { PyObject_GC_UnTrack(self); Py_CLEAR(((__pyx_CoroutineAwaitObject*)self)->coroutine); __Pyx_PyHeapTypeObject_GC_Del(self); } static int __Pyx_CoroutineAwait_traverse(__pyx_CoroutineAwaitObject *self, visitproc visit, void *arg) { Py_VISIT(self->coroutine); return 0; } static int __Pyx_CoroutineAwait_clear(__pyx_CoroutineAwaitObject *self) { Py_CLEAR(self->coroutine); return 0; } static PyObject *__Pyx_CoroutineAwait_Next(__pyx_CoroutineAwaitObject *self) { return __Pyx_Generator_Next(self->coroutine); } static PyObject *__Pyx_CoroutineAwait_Send(__pyx_CoroutineAwaitObject *self, PyObject *value) { return __Pyx_Coroutine_Send(self->coroutine, value); } static PyObject *__Pyx_CoroutineAwait_Throw(__pyx_CoroutineAwaitObject *self, PyObject *args) { return __Pyx_Coroutine_Throw(self->coroutine, args); } static PyObject *__Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self, PyObject *arg) { CYTHON_UNUSED_VAR(arg); return __Pyx_Coroutine_Close(self->coroutine); } static PyObject *__Pyx_CoroutineAwait_self(PyObject *self) { Py_INCREF(self); return self; } #if !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_CoroutineAwait_no_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { CYTHON_UNUSED_VAR(type); CYTHON_UNUSED_VAR(args); CYTHON_UNUSED_VAR(kwargs); PyErr_SetString(PyExc_TypeError, "cannot instantiate type, use 'await coroutine' instead"); return NULL; } #endif static PyObject *__Pyx_CoroutineAwait_reduce_ex(__pyx_CoroutineAwaitObject *self, PyObject *arg) { CYTHON_UNUSED_VAR(arg); PyErr_Format(PyExc_TypeError, "cannot pickle '%.200s' object", Py_TYPE(self)->tp_name); return NULL; } static PyMethodDef __pyx_CoroutineAwait_methods[] = { {"send", (PyCFunction) __Pyx_CoroutineAwait_Send, METH_O, (char*) PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next yielded value or raise StopIteration.")}, {"throw", (PyCFunction) __Pyx_CoroutineAwait_Throw, METH_VARARGS, (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next yielded value or raise StopIteration.")}, {"close", (PyCFunction) __Pyx_CoroutineAwait_Close, METH_NOARGS, (char*) PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")}, {"__reduce_ex__", (PyCFunction) __Pyx_CoroutineAwait_reduce_ex, METH_O, 0}, {"__reduce__", (PyCFunction) __Pyx_CoroutineAwait_reduce_ex, METH_NOARGS, 0}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_CoroutineAwaitType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_CoroutineAwait_dealloc}, {Py_tp_traverse, (void *)__Pyx_CoroutineAwait_traverse}, {Py_tp_clear, (void *)__Pyx_CoroutineAwait_clear}, #if !CYTHON_COMPILING_IN_PYPY {Py_tp_new, (void *)__Pyx_CoroutineAwait_no_new}, #endif {Py_tp_methods, (void *)__pyx_CoroutineAwait_methods}, {Py_tp_iter, (void *)__Pyx_CoroutineAwait_self}, {Py_tp_iternext, (void *)__Pyx_CoroutineAwait_Next}, {0, 0}, }; static PyType_Spec __pyx_CoroutineAwaitType_spec = { __PYX_TYPE_MODULE_PREFIX "coroutine_wrapper", sizeof(__pyx_CoroutineAwaitObject), 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, __pyx_CoroutineAwaitType_slots }; #else static PyTypeObject __pyx_CoroutineAwaitType_type = { PyVarObject_HEAD_INIT(0, 0) __PYX_TYPE_MODULE_PREFIX "coroutine_wrapper", sizeof(__pyx_CoroutineAwaitObject), 0, (destructor) __Pyx_CoroutineAwait_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, PyDoc_STR("A wrapper object implementing __await__ for coroutines."), (traverseproc) __Pyx_CoroutineAwait_traverse, (inquiry) __Pyx_CoroutineAwait_clear, 0, 0, __Pyx_CoroutineAwait_self, (iternextfunc) __Pyx_CoroutineAwait_Next, __pyx_CoroutineAwait_methods, 0 , 0 , 0, 0, 0, 0, 0, 0, 0, #if !CYTHON_COMPILING_IN_PYPY __Pyx_CoroutineAwait_no_new, #else 0, #endif 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, #endif #if __PYX_NEED_TP_PRINT_SLOT 0, #endif #if PY_VERSION_HEX >= 0x030C0000 0, #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, #endif }; #endif #if PY_VERSION_HEX < 0x030500B1 || defined(__Pyx_IterableCoroutine_USED) || CYTHON_USE_ASYNC_SLOTS static CYTHON_INLINE PyObject *__Pyx__Coroutine_await(PyObject *coroutine) { __pyx_CoroutineAwaitObject *await = PyObject_GC_New(__pyx_CoroutineAwaitObject, __pyx_CoroutineAwaitType); if (unlikely(!await)) return NULL; Py_INCREF(coroutine); await->coroutine = coroutine; PyObject_GC_Track(await); return (PyObject*)await; } #endif #if PY_VERSION_HEX < 0x030500B1 static PyObject *__Pyx_Coroutine_await_method(PyObject *coroutine, PyObject *arg) { CYTHON_UNUSED_VAR(arg); return __Pyx__Coroutine_await(coroutine); } #endif #if defined(__Pyx_IterableCoroutine_USED) || CYTHON_USE_ASYNC_SLOTS static PyObject *__Pyx_Coroutine_await(PyObject *coroutine) { if (unlikely(!coroutine || !__Pyx_Coroutine_Check(coroutine))) { PyErr_SetString(PyExc_TypeError, "invalid input, expected coroutine"); return NULL; } return __Pyx__Coroutine_await(coroutine); } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x030500B1 static PyObject *__Pyx_Coroutine_compare(PyObject *obj, PyObject *other, int op) { PyObject* result; switch (op) { case Py_EQ: result = (other == obj) ? Py_True : Py_False; break; case Py_NE: result = (other != obj) ? Py_True : Py_False; break; default: result = Py_NotImplemented; } Py_INCREF(result); return result; } #endif static PyMethodDef __pyx_Coroutine_methods[] = { {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O, (char*) PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next iterated value or raise StopIteration.")}, {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS, (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next iterated value or raise StopIteration.")}, {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS, (char*) PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")}, #if PY_VERSION_HEX < 0x030500B1 {"__await__", (PyCFunction) __Pyx_Coroutine_await_method, METH_NOARGS, (char*) PyDoc_STR("__await__() -> return an iterator to be used in await expression.")}, #endif {0, 0, 0, 0} }; static PyMemberDef __pyx_Coroutine_memberlist[] = { {(char *) "cr_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL}, {(char*) "cr_await", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY, (char*) PyDoc_STR("object being awaited, or None")}, {(char*) "cr_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL}, {(char *) "__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0}, #if CYTHON_USE_TYPE_SPECS {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0}, #endif {0, 0, 0, 0, 0} }; static PyGetSetDef __pyx_Coroutine_getsets[] = { {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name, (char*) PyDoc_STR("name of the coroutine"), 0}, {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname, (char*) PyDoc_STR("qualified name of the coroutine"), 0}, {(char *) "cr_frame", (getter)__Pyx_Coroutine_get_frame, NULL, (char*) PyDoc_STR("Frame of the coroutine"), 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_CoroutineType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc}, {Py_am_await, (void *)&__Pyx_Coroutine_await}, {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse}, {Py_tp_methods, (void *)__pyx_Coroutine_methods}, {Py_tp_members, (void *)__pyx_Coroutine_memberlist}, {Py_tp_getset, (void *)__pyx_Coroutine_getsets}, {Py_tp_getattro, (void *) __Pyx_PyObject_GenericGetAttrNoDict}, #if CYTHON_USE_TP_FINALIZE {Py_tp_finalize, (void *)__Pyx_Coroutine_del}, #endif {0, 0}, }; static PyType_Spec __pyx_CoroutineType_spec = { __PYX_TYPE_MODULE_PREFIX "coroutine", sizeof(__pyx_CoroutineObject), 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, __pyx_CoroutineType_slots }; #else #if CYTHON_USE_ASYNC_SLOTS static __Pyx_PyAsyncMethodsStruct __pyx_Coroutine_as_async = { __Pyx_Coroutine_await, 0, 0, #if PY_VERSION_HEX >= 0x030A00A3 0, #endif }; #endif static PyTypeObject __pyx_CoroutineType_type = { PyVarObject_HEAD_INIT(0, 0) __PYX_TYPE_MODULE_PREFIX "coroutine", sizeof(__pyx_CoroutineObject), 0, (destructor) __Pyx_Coroutine_dealloc, 0, 0, 0, #if CYTHON_USE_ASYNC_SLOTS &__pyx_Coroutine_as_async, #else 0, #endif 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, 0, (traverseproc) __Pyx_Coroutine_traverse, 0, #if CYTHON_USE_ASYNC_SLOTS && CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x030500B1 __Pyx_Coroutine_compare, #else 0, #endif offsetof(__pyx_CoroutineObject, gi_weakreflist), 0, 0, __pyx_Coroutine_methods, __pyx_Coroutine_memberlist, __pyx_Coroutine_getsets, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if CYTHON_USE_TP_FINALIZE 0, #else __Pyx_Coroutine_del, #endif 0, #if CYTHON_USE_TP_FINALIZE __Pyx_Coroutine_del, #elif PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, #endif #if __PYX_NEED_TP_PRINT_SLOT 0, #endif #if PY_VERSION_HEX >= 0x030C0000 0, #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, #endif }; #endif static int __pyx_Coroutine_init(PyObject *module) { CYTHON_MAYBE_UNUSED_VAR(module); #if CYTHON_USE_TYPE_SPECS __pyx_CoroutineType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CoroutineType_spec, NULL); #else __pyx_CoroutineType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; __pyx_CoroutineType = __Pyx_FetchCommonType(&__pyx_CoroutineType_type); #endif if (unlikely(!__pyx_CoroutineType)) return -1; #ifdef __Pyx_IterableCoroutine_USED if (unlikely(__pyx_IterableCoroutine_init(module) == -1)) return -1; #endif #if CYTHON_USE_TYPE_SPECS __pyx_CoroutineAwaitType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CoroutineAwaitType_spec, NULL); #else __pyx_CoroutineAwaitType = __Pyx_FetchCommonType(&__pyx_CoroutineAwaitType_type); #endif if (unlikely(!__pyx_CoroutineAwaitType)) return -1; return 0; } /* GetAwaitIter */ static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o) { #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(o)) { return __Pyx_NewRef(o); } #endif return __Pyx__Coroutine_GetAwaitableIter(o); } static void __Pyx_Coroutine_AwaitableIterError(PyObject *source) { #if PY_VERSION_HEX >= 0x030600B3 || defined(_PyErr_FormatFromCause) __Pyx_TypeName source_type_name = __Pyx_PyType_GetName(Py_TYPE(source)); _PyErr_FormatFromCause(PyExc_TypeError, "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name); __Pyx_DECREF_TypeName(source_type_name); #elif PY_MAJOR_VERSION >= 3 PyObject *exc, *val, *val2, *tb; __Pyx_TypeName source_type_name = __Pyx_PyType_GetName(Py_TYPE(source)); assert(PyErr_Occurred()); PyErr_Fetch(&exc, &val, &tb); PyErr_NormalizeException(&exc, &val, &tb); if (tb != NULL) { PyException_SetTraceback(val, tb); Py_DECREF(tb); } Py_DECREF(exc); assert(!PyErr_Occurred()); PyErr_Format(PyExc_TypeError, "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name); __Pyx_DECREF_TypeName(source_type_name); PyErr_Fetch(&exc, &val2, &tb); PyErr_NormalizeException(&exc, &val2, &tb); Py_INCREF(val); PyException_SetCause(val2, val); PyException_SetContext(val2, val); PyErr_Restore(exc, val2, tb); #else source++; #endif } static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *obj) { PyObject *res; #if CYTHON_USE_ASYNC_SLOTS __Pyx_PyAsyncMethodsStruct* am = __Pyx_PyType_AsAsync(obj); if (likely(am && am->am_await)) { res = (*am->am_await)(obj); } else #endif #if PY_VERSION_HEX >= 0x030500B2 || defined(PyCoro_CheckExact) if (PyCoro_CheckExact(obj)) { return __Pyx_NewRef(obj); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && defined(CO_ITERABLE_COROUTINE) #if PY_VERSION_HEX >= 0x030C00A6 if (PyGen_CheckExact(obj) && (PyGen_GetCode((PyGenObject*)obj)->co_flags & CO_ITERABLE_COROUTINE)) { #else if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) { #endif return __Pyx_NewRef(obj); } else #endif { PyObject *method = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, __pyx_n_s_await, &method); if (likely(is_method)) { res = __Pyx_PyObject_CallOneArg(method, obj); } else if (likely(method)) { res = __Pyx_PyObject_CallNoArg(method); } else goto slot_error; Py_DECREF(method); } if (unlikely(!res)) { __Pyx_Coroutine_AwaitableIterError(obj); goto bad; } if (unlikely(!PyIter_Check(res))) { __Pyx_TypeName res_type_name = __Pyx_PyType_GetName(Py_TYPE(res)); PyErr_Format(PyExc_TypeError, "__await__() returned non-iterator of type '" __Pyx_FMT_TYPENAME "'", res_type_name); __Pyx_DECREF_TypeName(res_type_name); Py_CLEAR(res); } else { int is_coroutine = 0; #ifdef __Pyx_Coroutine_USED is_coroutine |= __Pyx_Coroutine_Check(res); #endif #if PY_VERSION_HEX >= 0x030500B2 || defined(PyCoro_CheckExact) is_coroutine |= PyCoro_CheckExact(res); #endif if (unlikely(is_coroutine)) { /* __await__ must return an *iterator*, not a coroutine or another awaitable (see PEP 492) */ PyErr_SetString(PyExc_TypeError, "__await__() returned a coroutine"); Py_CLEAR(res); } } return res; slot_error: { __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "object " __Pyx_FMT_TYPENAME " can't be used in 'await' expression", obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); } bad: return NULL; } /* CoroutineYieldFrom */ static PyObject* __Pyx__Coroutine_Yield_From_Generic(__pyx_CoroutineObject *gen, PyObject *source) { PyObject *retval; PyObject *source_gen = __Pyx__Coroutine_GetAwaitableIter(source); if (unlikely(!source_gen)) { return NULL; } if (__Pyx_Coroutine_Check(source_gen)) { retval = __Pyx_Generator_Next(source_gen); } else { retval = __Pyx_PyObject_GetIterNextFunc(source_gen)(source_gen); } if (retval) { gen->yieldfrom = source_gen; return retval; } Py_DECREF(source_gen); return NULL; } static CYTHON_INLINE PyObject* __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source) { PyObject *retval; if (__Pyx_Coroutine_Check(source)) { if (unlikely(((__pyx_CoroutineObject*)source)->yieldfrom)) { PyErr_SetString( PyExc_RuntimeError, "coroutine is being awaited already"); return NULL; } retval = __Pyx_Generator_Next(source); #ifdef __Pyx_AsyncGen_USED } else if (__pyx_PyAsyncGenASend_CheckExact(source)) { retval = __Pyx_async_gen_asend_iternext(source); #endif } else { return __Pyx__Coroutine_Yield_From_Generic(gen, source); } if (retval) { Py_INCREF(source); gen->yieldfrom = source; } return retval; } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { __Pyx_TypeName obj_type_name; __Pyx_TypeName type_name; if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(__Pyx_TypeCheck(obj, type))) return 1; obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); type_name = __Pyx_PyType_GetName(type); PyErr_Format(PyExc_TypeError, "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME, obj_type_name, type_name); __Pyx_DECREF_TypeName(obj_type_name); __Pyx_DECREF_TypeName(type_name); return 0; } /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif { PyObject *local_type = NULL, *local_value, *local_tb = NULL; #if CYTHON_FAST_THREAD_STATE PyObject *tmp_type, *tmp_value, *tmp_tb; #if PY_VERSION_HEX >= 0x030C00A6 local_value = tstate->current_exception; tstate->current_exception = 0; if (likely(local_value)) { local_type = (PyObject*) Py_TYPE(local_value); Py_INCREF(local_type); local_tb = PyException_GetTraceback(local_value); } #else local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #endif #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6 if (unlikely(tstate->current_exception)) #elif CYTHON_FAST_THREAD_STATE if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE #if CYTHON_USE_EXC_INFO_STACK { _PyErr_StackItem *exc_info = tstate->exc_info; #if PY_VERSION_HEX >= 0x030B00a4 tmp_value = exc_info->exc_value; exc_info->exc_value = local_value; tmp_type = NULL; tmp_tb = NULL; Py_XDECREF(local_type); Py_XDECREF(local_tb); #else tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = local_type; exc_info->exc_value = local_value; exc_info->exc_traceback = local_tb; #endif } #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* pep479 */ static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) { PyObject *exc, *val, *tb, *cur_exc; __Pyx_PyThreadState_declare #ifdef __Pyx_StopAsyncIteration_USED int is_async_stopiteration = 0; #endif CYTHON_MAYBE_UNUSED_VAR(in_async_gen); cur_exc = PyErr_Occurred(); if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) { #ifdef __Pyx_StopAsyncIteration_USED if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, __Pyx_PyExc_StopAsyncIteration))) { is_async_stopiteration = 1; } else #endif return; } __Pyx_PyThreadState_assign __Pyx_GetException(&exc, &val, &tb); Py_XDECREF(exc); Py_XDECREF(val); Py_XDECREF(tb); PyErr_SetString(PyExc_RuntimeError, #ifdef __Pyx_StopAsyncIteration_USED is_async_stopiteration ? "async generator raised StopAsyncIteration" : in_async_gen ? "async generator raised StopIteration" : #endif "generator raised StopIteration"); } /* StringJoin */ #if !CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) { return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL); } #endif /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (unlikely(!j)) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping; PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence; if (mm && mm->mp_subscript) { PyObject *r, *key = PyInt_FromSsize_t(i); if (unlikely(!key)) return NULL; r = mm->mp_subscript(o, key); Py_DECREF(key); return r; } if (likely(sm && sm->sq_item)) { if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) { Py_ssize_t l = sm->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return sm->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType(); if (unlikely(exc_type)) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) return -1; __Pyx_PyErr_Clear(); return 0; } return 0; } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } return __Pyx_IterFinish(); } /* GetAttr3 */ static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; __Pyx_PyErr_Clear(); Py_INCREF(d); return d; } static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { PyObject *r; #if CYTHON_USE_TYPE_SLOTS if (likely(PyString_Check(n))) { r = __Pyx_PyObject_GetAttrStrNoError(o, n); if (unlikely(!r) && likely(!PyErr_Occurred())) { r = __Pyx_NewRef(d); } return r; } #endif r = PyObject_GetAttr(o, n); return (likely(r)) ? r : __Pyx_GetAttr3Default(d); } /* RaiseUnexpectedTypeError */ static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj) { __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME, expected, obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); return 0; } /* PyObjectLookupSpecial */ #if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) { PyObject *res; PyTypeObject *tp = Py_TYPE(obj); #if PY_MAJOR_VERSION < 3 if (unlikely(PyInstance_Check(obj))) return with_error ? __Pyx_PyObject_GetAttrStr(obj, attr_name) : __Pyx_PyObject_GetAttrStrNoError(obj, attr_name); #endif res = _PyType_Lookup(tp, attr_name); if (likely(res)) { descrgetfunc f = Py_TYPE(res)->tp_descr_get; if (!f) { Py_INCREF(res); } else { res = f(res, obj, (PyObject *)tp); } } else if (with_error) { PyErr_SetObject(PyExc_AttributeError, attr_name); } return res; } #endif /* ReturnWithStopIteration */ static void __Pyx__ReturnWithStopIteration(PyObject* value) { PyObject *exc, *args; #if CYTHON_COMPILING_IN_CPYTHON __Pyx_PyThreadState_declare if (PY_VERSION_HEX >= 0x030C00A6 || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) { args = PyTuple_New(1); if (unlikely(!args)) return; Py_INCREF(value); PyTuple_SET_ITEM(args, 0, value); exc = PyType_Type.tp_call(PyExc_StopIteration, args, NULL); Py_DECREF(args); if (!exc) return; } else { Py_INCREF(value); exc = value; } #if CYTHON_FAST_THREAD_STATE __Pyx_PyThreadState_assign #if CYTHON_USE_EXC_INFO_STACK if (!__pyx_tstate->exc_info->exc_value) #else if (!__pyx_tstate->exc_type) #endif { Py_INCREF(PyExc_StopIteration); __Pyx_ErrRestore(PyExc_StopIteration, exc, NULL); return; } #endif #else args = PyTuple_Pack(1, value); if (unlikely(!args)) return; exc = PyObject_Call(PyExc_StopIteration, args, NULL); Py_DECREF(args); if (unlikely(!exc)) return; #endif PyErr_SetObject(PyExc_StopIteration, exc); Py_DECREF(exc); } /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*); if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (cls == a || cls == b) return 1; mro = cls->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { PyObject *base = PyTuple_GET_ITEM(mro, i); if (base == (PyObject *)a || base == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b); } #if PY_MAJOR_VERSION == 2 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { PyObject *exception, *value, *tb; int res; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&exception, &value, &tb); res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } if (!res) { res = PyObject_IsSubclass(err, exc_type2); if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } } __Pyx_ErrRestore(exception, value, tb); return res; } #else static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { if (exc_type1) { return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2); } else { return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } } #endif static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; i= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* PyObjectCallMethod0 */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { PyObject *method = NULL, *result = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_CallOneArg(method, obj); Py_DECREF(method); return result; } if (unlikely(!method)) goto bad; result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; } /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } /* UnpackTuple2 */ static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) { PyObject *value1 = NULL, *value2 = NULL; #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(value1); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } *pvalue1 = value1; *pvalue2 = value2; return 0; #if CYTHON_COMPILING_IN_PYPY bad: Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; #endif } static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = __Pyx_PyObject_GetIterNextFunc(iter); value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; if (is_dict) { #if !CYTHON_COMPILING_IN_PYPY *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; #elif PY_MAJOR_VERSION >= 3 static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL; PyObject **pp = NULL; if (method_name) { const char *name = PyUnicode_AsUTF8(method_name); if (strcmp(name, "iteritems") == 0) pp = &py_items; else if (strcmp(name, "iterkeys") == 0) pp = &py_keys; else if (strcmp(name, "itervalues") == 0) pp = &py_values; if (pp) { if (!*pp) { *pp = PyUnicode_FromString(name + 4); if (!*pp) return NULL; } method_name = *pp; } } #endif } *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* PyObjectSetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_setattro)) return tp->tp_setattro(obj, attr_name, value); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_setattr)) return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); #endif return PyObject_SetAttr(obj, attr_name, value); } #endif /* RaiseUnboundLocalError */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* SliceObject */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, int has_cstart, int has_cstop, int wraparound) { __Pyx_TypeName obj_type_name; #if CYTHON_USE_TYPE_SLOTS PyMappingMethods* mp; #if PY_MAJOR_VERSION < 3 PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; if (likely(ms && ms->sq_slice)) { if (!has_cstart) { if (_py_start && (*_py_start != Py_None)) { cstart = __Pyx_PyIndex_AsSsize_t(*_py_start); if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; } else cstart = 0; } if (!has_cstop) { if (_py_stop && (*_py_stop != Py_None)) { cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop); if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; } else cstop = PY_SSIZE_T_MAX; } if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) { Py_ssize_t l = ms->sq_length(obj); if (likely(l >= 0)) { if (cstop < 0) { cstop += l; if (cstop < 0) cstop = 0; } if (cstart < 0) { cstart += l; if (cstart < 0) cstart = 0; } } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) goto bad; PyErr_Clear(); } } return ms->sq_slice(obj, cstart, cstop); } #else CYTHON_UNUSED_VAR(wraparound); #endif mp = Py_TYPE(obj)->tp_as_mapping; if (likely(mp && mp->mp_subscript)) #else CYTHON_UNUSED_VAR(wraparound); #endif { PyObject* result; PyObject *py_slice, *py_start, *py_stop; if (_py_slice) { py_slice = *_py_slice; } else { PyObject* owned_start = NULL; PyObject* owned_stop = NULL; if (_py_start) { py_start = *_py_start; } else { if (has_cstart) { owned_start = py_start = PyInt_FromSsize_t(cstart); if (unlikely(!py_start)) goto bad; } else py_start = Py_None; } if (_py_stop) { py_stop = *_py_stop; } else { if (has_cstop) { owned_stop = py_stop = PyInt_FromSsize_t(cstop); if (unlikely(!py_stop)) { Py_XDECREF(owned_start); goto bad; } } else py_stop = Py_None; } py_slice = PySlice_New(py_start, py_stop, Py_None); Py_XDECREF(owned_start); Py_XDECREF(owned_stop); if (unlikely(!py_slice)) goto bad; } #if CYTHON_USE_TYPE_SLOTS result = mp->mp_subscript(obj, py_slice); #else result = PyObject_GetItem(obj, py_slice); #endif if (!_py_slice) { Py_DECREF(py_slice); } return result; } obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); bad: return NULL; } /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *module = 0; PyObject *empty_dict = 0; PyObject *empty_list = 0; #if PY_MAJOR_VERSION < 3 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (unlikely(!py_import)) goto bad; if (!from_list) { empty_list = PyList_New(0); if (unlikely(!empty_list)) goto bad; from_list = empty_list; } #endif empty_dict = PyDict_New(); if (unlikely(!empty_dict)) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { #if CYTHON_COMPILING_IN_LIMITED_API module = PyImport_ImportModuleLevelObject( name, empty_dict, empty_dict, from_list, 1); #else module = PyImport_ImportModuleLevelObject( name, __pyx_d, empty_dict, from_list, 1); #endif if (unlikely(!module)) { if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError))) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_MAJOR_VERSION < 3 PyObject *py_level = PyInt_FromLong(level); if (unlikely(!py_level)) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL); Py_DECREF(py_level); #else #if CYTHON_COMPILING_IN_LIMITED_API module = PyImport_ImportModuleLevelObject( name, empty_dict, empty_dict, from_list, level); #else module = PyImport_ImportModuleLevelObject( name, __pyx_d, empty_dict, from_list, level); #endif #endif } } bad: Py_XDECREF(empty_dict); Py_XDECREF(empty_list); #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_import); #endif return module; } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { const char* module_name_str = 0; PyObject* module_name = 0; PyObject* module_dot = 0; PyObject* full_name = 0; PyErr_Clear(); module_name_str = PyModule_GetName(module); if (unlikely(!module_name_str)) { goto modbad; } module_name = PyUnicode_FromString(module_name_str); if (unlikely(!module_name)) { goto modbad; } module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__47); if (unlikely(!module_dot)) { goto modbad; } full_name = PyUnicode_Concat(module_dot, name); if (unlikely(!full_name)) { goto modbad; } #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) goto modbad; value = PyObject_GetItem(modules, full_name); } #else value = PyImport_GetModule(full_name); #endif modbad: Py_XDECREF(full_name); Py_XDECREF(module_dot); Py_XDECREF(module_name); } if (unlikely(!value)) { PyErr_Format(PyExc_ImportError, #if PY_MAJOR_VERSION < 3 "cannot import name %.230s", PyString_AS_STRING(name)); #else "cannot import name %S", name); #endif } return value; } /* HasAttr */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_GetAttr(o, n); if (!r) { PyErr_Clear(); return 0; } else { Py_DECREF(r); return 1; } } /* ValidateBasesTuple */ #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) { Py_ssize_t i, n = PyTuple_GET_SIZE(bases); for (i = 1; i < n; i++) { PyObject *b0 = PyTuple_GET_ITEM(bases, i); PyTypeObject *b; #if PY_MAJOR_VERSION < 3 if (PyClass_Check(b0)) { PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class", PyString_AS_STRING(((PyClassObject*)b0)->cl_name)); return -1; } #endif b = (PyTypeObject*) b0; if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE)) { __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); PyErr_Format(PyExc_TypeError, "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name); __Pyx_DECREF_TypeName(b_name); return -1; } if (dictoffset == 0 && b->tp_dictoffset) { __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); PyErr_Format(PyExc_TypeError, "extension type '%.200s' has no __dict__ slot, " "but base type '" __Pyx_FMT_TYPENAME "' has: " "either add 'cdef dict __dict__' to the extension type " "or add '__slots__ = [...]' to the base type", type_name, b_name); __Pyx_DECREF_TypeName(b_name); return -1; } } return 0; } #endif /* PyType_Ready */ static int __Pyx_PyType_Ready(PyTypeObject *t) { #if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION) (void)__Pyx_PyObject_CallMethod0; #if CYTHON_USE_TYPE_SPECS (void)__Pyx_validate_bases_tuple; #endif return PyType_Ready(t); #else int r; PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1)) return -1; #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) { int gc_was_enabled; #if PY_VERSION_HEX >= 0x030A00b1 gc_was_enabled = PyGC_Disable(); (void)__Pyx_PyObject_CallMethod0; #else PyObject *ret, *py_status; PyObject *gc = NULL; #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) gc = PyImport_GetModule(__pyx_kp_u_gc); #endif if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc); if (unlikely(!gc)) return -1; py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled); if (unlikely(!py_status)) { Py_DECREF(gc); return -1; } gc_was_enabled = __Pyx_PyObject_IsTrue(py_status); Py_DECREF(py_status); if (gc_was_enabled > 0) { ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable); if (unlikely(!ret)) { Py_DECREF(gc); return -1; } Py_DECREF(ret); } else if (unlikely(gc_was_enabled == -1)) { Py_DECREF(gc); return -1; } #endif t->tp_flags |= Py_TPFLAGS_HEAPTYPE; #if PY_VERSION_HEX >= 0x030A0000 t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE; #endif #else (void)__Pyx_PyObject_CallMethod0; #endif r = PyType_Ready(t); #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; #if PY_VERSION_HEX >= 0x030A00b1 if (gc_was_enabled) PyGC_Enable(); #else if (gc_was_enabled) { PyObject *tp, *v, *tb; PyErr_Fetch(&tp, &v, &tb); ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable); if (likely(ret || r == -1)) { Py_XDECREF(ret); PyErr_Restore(tp, v, tb); } else { Py_XDECREF(tp); Py_XDECREF(v); Py_XDECREF(tb); r = -1; } } Py_DECREF(gc); #endif } #endif return r; #endif } /* PyObject_GenericGetAttr */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { return PyObject_GenericGetAttr(obj, attr_name); } return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); } #endif /* SetupReduce */ #if !CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_n_s_name_2); if (likely(name_attr)) { ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); } else { ret = -1; } if (unlikely(ret < 0)) { PyErr_Clear(); ret = 0; } Py_XDECREF(name_attr); return ret; } static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; PyObject *object_getstate = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; PyObject *getstate = NULL; #if CYTHON_USE_PYTYPE_LOOKUP getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); #else getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); if (!getstate && PyErr_Occurred()) { goto __PYX_BAD; } #endif if (getstate) { #if CYTHON_USE_PYTYPE_LOOKUP object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); #else object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); if (!object_getstate && PyErr_Occurred()) { goto __PYX_BAD; } #endif if (object_getstate != getstate) { goto __PYX_GOOD; } } #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #else object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #endif reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; if (reduce_ex == object_reduce_ex) { #if CYTHON_USE_PYTYPE_LOOKUP object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; #else object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; #endif reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); if (likely(reduce_cython)) { ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; } else if (reduce == object_reduce || PyErr_Occurred()) { goto __PYX_BAD; } setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate); if (!setstate) PyErr_Clear(); if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); if (likely(setstate_cython)) { ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; } else if (!setstate || PyErr_Occurred()) { goto __PYX_BAD; } } PyType_Modified((PyTypeObject*)type_obj); } } goto __PYX_GOOD; __PYX_BAD: if (!PyErr_Occurred()) { __Pyx_TypeName type_obj_name = __Pyx_PyType_GetName((PyTypeObject*)type_obj); PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name); __Pyx_DECREF_TypeName(type_obj_name); } ret = -1; __PYX_GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); Py_XDECREF(object_getstate); Py_XDECREF(getstate); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); Py_XDECREF(reduce_cython); Py_XDECREF(setstate); Py_XDECREF(setstate_cython); return ret; } #endif /* SetVTable */ static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) { PyObject *ob = PyCapsule_New(vtable, 0, 0); if (unlikely(!ob)) goto bad; #if CYTHON_COMPILING_IN_LIMITED_API if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0)) #else if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0)) #endif goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* GetVTable */ static void* __Pyx_GetVtable(PyTypeObject *type) { void* ptr; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable); #else PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable); #endif if (!ob) goto bad; ptr = PyCapsule_GetPointer(ob, 0); if (!ptr && !PyErr_Occurred()) PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type"); Py_DECREF(ob); return ptr; bad: Py_XDECREF(ob); return NULL; } /* MergeVTables */ #if !CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_MergeVtables(PyTypeObject *type) { int i; void** base_vtables; __Pyx_TypeName tp_base_name; __Pyx_TypeName base_name; void* unknown = (void*)-1; PyObject* bases = type->tp_bases; int base_depth = 0; { PyTypeObject* base = type->tp_base; while (base) { base_depth += 1; base = base->tp_base; } } base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1)); base_vtables[0] = unknown; for (i = 1; i < PyTuple_GET_SIZE(bases); i++) { void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i))); if (base_vtable != NULL) { int j; PyTypeObject* base = type->tp_base; for (j = 0; j < base_depth; j++) { if (base_vtables[j] == unknown) { base_vtables[j] = __Pyx_GetVtable(base); base_vtables[j + 1] = unknown; } if (base_vtables[j] == base_vtable) { break; } else if (base_vtables[j] == NULL) { goto bad; } base = base->tp_base; } } } PyErr_Clear(); free(base_vtables); return 0; bad: tp_base_name = __Pyx_PyType_GetName(type->tp_base); base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i)); PyErr_Format(PyExc_TypeError, "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name); __Pyx_DECREF_TypeName(tp_base_name); __Pyx_DECREF_TypeName(base_name); free(base_vtables); return -1; } #endif /* FormatTypeName */ #if CYTHON_COMPILING_IN_LIMITED_API static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp) { PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp, __pyx_n_s_name_2); if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) { PyErr_Clear(); Py_XSETREF(name, __Pyx_NewRef(__pyx_n_s__49)); } return name; } #endif /* ValidateExternBase */ static int __Pyx_validate_extern_base(PyTypeObject *base) { Py_ssize_t itemsize; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_itemsize; #endif #if !CYTHON_COMPILING_IN_LIMITED_API itemsize = ((PyTypeObject *)base)->tp_itemsize; #else py_itemsize = PyObject_GetAttrString((PyObject*)base, "__itemsize__"); if (!py_itemsize) return -1; itemsize = PyLong_AsSsize_t(py_itemsize); Py_DECREF(py_itemsize); py_itemsize = 0; if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred()) return -1; #endif if (itemsize) { __Pyx_TypeName b_name = __Pyx_PyType_GetName(base); PyErr_Format(PyExc_TypeError, "inheritance from PyVarObject types like '" __Pyx_FMT_TYPENAME "' not currently supported", b_name); __Pyx_DECREF_TypeName(b_name); return -1; } return 0; } /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType_3_0_0 #define __PYX_HAVE_RT_ImportType_3_0_0 static PyTypeObject *__Pyx_ImportType_3_0_0(PyObject *module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_0 check_size) { PyObject *result = 0; char warning[200]; Py_ssize_t basicsize; Py_ssize_t itemsize; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_basicsize; PyObject *py_itemsize; #endif result = PyObject_GetAttrString(module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #if !CYTHON_COMPILING_IN_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; itemsize = ((PyTypeObject *)result)->tp_itemsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; py_itemsize = PyObject_GetAttrString(result, "__itemsize__"); if (!py_itemsize) goto bad; itemsize = PyLong_AsSsize_t(py_itemsize); Py_DECREF(py_itemsize); py_itemsize = 0; if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if (itemsize) { if (size % alignment) { alignment = size % alignment; } if (itemsize < (Py_ssize_t)alignment) itemsize = (Py_ssize_t)alignment; } if ((size_t)(basicsize + itemsize) < size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize+itemsize); goto bad; } if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_0 && ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd-%zd from PyObject", module_name, class_name, size, basicsize, basicsize+itemsize); goto bad; } else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_0 && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(result); return NULL; } #endif /* ImportDottedModule */ #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) { PyObject *partial_name = NULL, *slice = NULL, *sep = NULL; if (unlikely(PyErr_Occurred())) { PyErr_Clear(); } if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) { partial_name = name; } else { slice = PySequence_GetSlice(parts_tuple, 0, count); if (unlikely(!slice)) goto bad; sep = PyUnicode_FromStringAndSize(".", 1); if (unlikely(!sep)) goto bad; partial_name = PyUnicode_Join(sep, slice); } PyErr_Format( #if PY_MAJOR_VERSION < 3 PyExc_ImportError, "No module named '%s'", PyString_AS_STRING(partial_name)); #else #if PY_VERSION_HEX >= 0x030600B1 PyExc_ModuleNotFoundError, #else PyExc_ImportError, #endif "No module named '%U'", partial_name); #endif bad: Py_XDECREF(sep); Py_XDECREF(slice); Py_XDECREF(partial_name); return NULL; } #endif #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) { PyObject *imported_module; #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) return NULL; imported_module = __Pyx_PyDict_GetItemStr(modules, name); Py_XINCREF(imported_module); #else imported_module = PyImport_GetModule(name); #endif return imported_module; } #endif #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) { Py_ssize_t i, nparts; nparts = PyTuple_GET_SIZE(parts_tuple); for (i=1; i < nparts && module; i++) { PyObject *part, *submodule; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS part = PyTuple_GET_ITEM(parts_tuple, i); #else part = PySequence_ITEM(parts_tuple, i); #endif submodule = __Pyx_PyObject_GetAttrStrNoError(module, part); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(part); #endif Py_DECREF(module); module = submodule; } if (unlikely(!module)) { return __Pyx__ImportDottedModule_Error(name, parts_tuple, i); } return module; } #endif static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) { #if PY_MAJOR_VERSION < 3 PyObject *module, *from_list, *star = __pyx_n_s__50; CYTHON_UNUSED_VAR(parts_tuple); from_list = PyList_New(1); if (unlikely(!from_list)) return NULL; Py_INCREF(star); PyList_SET_ITEM(from_list, 0, star); module = __Pyx_Import(name, from_list, 0); Py_DECREF(from_list); return module; #else PyObject *imported_module; PyObject *module = __Pyx_Import(name, NULL, 0); if (!parts_tuple || unlikely(!module)) return module; imported_module = __Pyx__ImportDottedModule_Lookup(name); if (likely(imported_module)) { Py_DECREF(module); return imported_module; } PyErr_Clear(); return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple); #endif } static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) { #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1 PyObject *module = __Pyx__ImportDottedModule_Lookup(name); if (likely(module)) { PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec); if (likely(spec)) { PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing); if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) { Py_DECREF(spec); spec = NULL; } Py_XDECREF(unsafe); } if (likely(!spec)) { PyErr_Clear(); return module; } Py_DECREF(spec); Py_DECREF(module); } else if (PyErr_Occurred()) { PyErr_Clear(); } #endif return __Pyx__ImportDottedModule(name, parts_tuple); } /* decode_c_string */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { Py_ssize_t length; if (unlikely((start < 0) | (stop < 0))) { size_t slen = strlen(cstring); if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "c-string too long to convert to Python"); return NULL; } length = (Py_ssize_t) slen; if (start < 0) { start += length; if (start < 0) start = 0; } if (stop < 0) stop += length; } if (unlikely(stop <= start)) return __Pyx_NewRef(__pyx_empty_unicode); length = stop - start; cstring += start; if (decode_func) { return decode_func(cstring, length, errors); } else { return PyUnicode_Decode(cstring, length, encoding, errors); } } /* Globals */ static PyObject* __Pyx_Globals(void) { return __Pyx_NewRef(__pyx_d); } /* PyVectorcallFastCallDict */ #if CYTHON_METH_FASTCALL static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) { PyObject *res = NULL; PyObject *kwnames; PyObject **newargs; PyObject **kwvalues; Py_ssize_t i, pos; size_t j; PyObject *key, *value; unsigned long keys_are_strings; Py_ssize_t nkw = PyDict_GET_SIZE(kw); newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0])); if (unlikely(newargs == NULL)) { PyErr_NoMemory(); return NULL; } for (j = 0; j < nargs; j++) newargs[j] = args[j]; kwnames = PyTuple_New(nkw); if (unlikely(kwnames == NULL)) { PyMem_Free(newargs); return NULL; } kwvalues = newargs + nargs; pos = i = 0; keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS; while (PyDict_Next(kw, &pos, &key, &value)) { keys_are_strings &= Py_TYPE(key)->tp_flags; Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(kwnames, i, key); kwvalues[i] = value; i++; } if (unlikely(!keys_are_strings)) { PyErr_SetString(PyExc_TypeError, "keywords must be strings"); goto cleanup; } res = vc(func, newargs, nargs, kwnames); cleanup: Py_DECREF(kwnames); for (i = 0; i < nkw; i++) Py_DECREF(kwvalues[i]); PyMem_Free(newargs); return res; } static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) { if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) { return vc(func, args, nargs, NULL); } return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw); } #endif /* CythonFunctionShared */ static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) { #if PY_VERSION_HEX < 0x030900B1 __Pyx_Py_XDECREF_SET( __Pyx_CyFunction_GetClassObj(f), ((classobj) ? __Pyx_NewRef(classobj) : NULL)); #else __Pyx_Py_XDECREF_SET( ((PyCMethodObject *) (f))->mm_class, (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL)); #endif } static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) { CYTHON_UNUSED_VAR(closure); if (unlikely(op->func_doc == NULL)) { if (((PyCFunctionObject*)op)->m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); #else op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (value == NULL) { value = Py_None; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_doc, value); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); #else op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_name, value); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_qualname, value); return 0; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_dict, value); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(op); CYTHON_UNUSED_VAR(context); Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context) { PyObject* result = (op->func_code) ? op->func_code : Py_None; CYTHON_UNUSED_VAR(context); Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value) { value = Py_None; } else if (unlikely(value != Py_None && !PyTuple_Check(value))) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not " "currently affect the values used in function calls", 1); Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->defaults_tuple, value); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) { PyObject* result = op->defaults_tuple; CYTHON_UNUSED_VAR(context); if (unlikely(!result)) { if (op->defaults_getter) { if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value) { value = Py_None; } else if (unlikely(value != Py_None && !PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not " "currently affect the values used in function calls", 1); Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) { PyObject* result = op->defaults_kwdict; CYTHON_UNUSED_VAR(context); if (unlikely(!result)) { if (op->defaults_getter) { if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value || value == Py_None) { value = NULL; } else if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); __Pyx_Py_XDECREF_SET(op->func_annotations, value); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) { PyObject* result = op->func_annotations; CYTHON_UNUSED_VAR(context); if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyObject * __Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) { int is_coroutine; CYTHON_UNUSED_VAR(context); if (op->func_is_coroutine) { return __Pyx_NewRef(op->func_is_coroutine); } is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE; #if PY_VERSION_HEX >= 0x03050000 if (is_coroutine) { PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine; fromlist = PyList_New(1); if (unlikely(!fromlist)) return NULL; Py_INCREF(marker); PyList_SET_ITEM(fromlist, 0, marker); module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0); Py_DECREF(fromlist); if (unlikely(!module)) goto ignore; op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker); Py_DECREF(module); if (likely(op->func_is_coroutine)) { return __Pyx_NewRef(op->func_is_coroutine); } ignore: PyErr_Clear(); } #endif op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine); return __Pyx_NewRef(op->func_is_coroutine); } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0}, #if CYTHON_USE_TYPE_SPECS {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0}, #if CYTHON_METH_FASTCALL #if CYTHON_BACKPORT_VECTORCALL {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0}, #else {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0}, #endif #endif #if PY_VERSION_HEX < 0x030500A0 {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0}, #else {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0}, #endif #endif {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args) { CYTHON_UNUSED_VAR(args); #if PY_MAJOR_VERSION >= 3 Py_INCREF(m->func_qualname); return m->func_qualname; #else return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist) #endif static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { PyCFunctionObject *cf = (PyCFunctionObject*) op; if (unlikely(op == NULL)) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; cf->m_ml = ml; cf->m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); cf->m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; #if PY_VERSION_HEX < 0x030900B1 op->func_classobj = NULL; #else ((PyCMethodObject*)op)->mm_class = NULL; #endif op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults_size = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; op->func_is_coroutine = NULL; #if CYTHON_METH_FASTCALL switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) { case METH_NOARGS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS; break; case METH_O: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O; break; case METH_METHOD | METH_FASTCALL | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD; break; case METH_FASTCALL | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS; break; case METH_VARARGS | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = NULL; break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); Py_DECREF(op); return NULL; } #endif return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(((PyCFunctionObject*)m)->m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); #if PY_VERSION_HEX < 0x030900B1 Py_CLEAR(__Pyx_CyFunction_GetClassObj(m)); #else { PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class; ((PyCMethodObject *) (m))->mm_class = NULL; Py_XDECREF(cls); } #endif Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); Py_CLEAR(m->func_is_coroutine); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) { if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); __Pyx_PyHeapTypeObject_GC_Del(m); } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); __Pyx__CyFunction_dealloc(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(((PyCFunctionObject*)m)->m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(__Pyx_CyFunction_GetClassObj(m)); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); Py_VISIT(m->func_is_coroutine); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS arg0 = PyTuple_GET_ITEM(arg, 0); #else arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; #endif result = (*meth)(self, arg0); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(arg0); #endif return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); } static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { PyObject *result; __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; #if CYTHON_METH_FASTCALL __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc); if (vc) { #if CYTHON_ASSUME_SAFE_MACROS return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw); #else (void) &__Pyx_PyVectorcall_FastCallDict; return PyVectorcall_Call(func, args, kw); #endif } #endif if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { Py_ssize_t argc; PyObject *new_args; PyObject *self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (unlikely(!new_args)) return NULL; self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); #if PY_MAJOR_VERSION > 2 PyErr_Format(PyExc_TypeError, "unbound method %.200S() needs an argument", cyfunc->func_qualname); #else PyErr_SetString(PyExc_TypeError, "unbound method needs an argument"); #endif return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } #if CYTHON_METH_FASTCALL static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames) { int ret = 0; if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { if (unlikely(nargs < 1)) { PyErr_Format(PyExc_TypeError, "%.200s() needs an argument", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); return -1; } ret = 1; } if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) { PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); return -1; } return ret; } static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } if (unlikely(nargs != 0)) { PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", def->ml_name, nargs); return NULL; } return def->ml_meth(self, NULL); } static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } if (unlikely(nargs != 1)) { PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", def->ml_name, nargs); return NULL; } return def->ml_meth(self, args[0]); } static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } return ((_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames); } static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc); #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames); } #endif #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_CyFunctionType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc}, {Py_tp_repr, (void *)__Pyx_CyFunction_repr}, {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod}, {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse}, {Py_tp_clear, (void *)__Pyx_CyFunction_clear}, {Py_tp_methods, (void *)__pyx_CyFunction_methods}, {Py_tp_members, (void *)__pyx_CyFunction_members}, {Py_tp_getset, (void *)__pyx_CyFunction_getsets}, {Py_tp_descr_get, (void *)__Pyx_PyMethod_New}, {0, 0}, }; static PyType_Spec __pyx_CyFunctionType_spec = { __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR Py_TPFLAGS_METHOD_DESCRIPTOR | #endif #if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL) _Py_TPFLAGS_HAVE_VECTORCALL | #endif Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, __pyx_CyFunctionType_slots }; #else static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, #if !CYTHON_METH_FASTCALL 0, #elif CYTHON_BACKPORT_VECTORCALL (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall), #else offsetof(PyCFunctionObject, vectorcall), #endif 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_CallAsMethod, 0, 0, 0, 0, #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR Py_TPFLAGS_METHOD_DESCRIPTOR | #endif #ifdef _Py_TPFLAGS_HAVE_VECTORCALL _Py_TPFLAGS_HAVE_VECTORCALL | #endif Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_PyMethod_New, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, #endif #if __PYX_NEED_TP_PRINT_SLOT 0, #endif #if PY_VERSION_HEX >= 0x030C0000 0, #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, #endif }; #endif static int __pyx_CyFunction_init(PyObject *module) { #if CYTHON_USE_TYPE_SPECS __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL); #else CYTHON_UNUSED_VAR(module); __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); #endif if (unlikely(__pyx_CyFunctionType == NULL)) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (unlikely(!m->defaults)) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; m->defaults_size = size; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* CythonFunction */ static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { PyObject *op = __Pyx_CyFunction_Init( PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType), ml, flags, qualname, closure, module, globals, code ); if (likely(op)) { PyObject_GC_Track(op); } return op; } /* pyfrozenset_new */ static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) { if (it) { PyObject* result; #if CYTHON_COMPILING_IN_PYPY PyObject* args; args = PyTuple_Pack(1, it); if (unlikely(!args)) return NULL; result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL); Py_DECREF(args); return result; #else if (PyFrozenSet_CheckExact(it)) { Py_INCREF(it); return it; } result = PyFrozenSet_New(it); if (unlikely(!result)) return NULL; if ((PY_VERSION_HEX >= 0x031000A1) || likely(PySet_GET_SIZE(result))) return result; Py_DECREF(result); #endif } #if CYTHON_USE_TYPE_SLOTS return PyFrozenSet_Type.tp_new(&PyFrozenSet_Type, __pyx_empty_tuple, NULL); #else return PyObject_Call((PyObject*)&PyFrozenSet_Type, __pyx_empty_tuple, NULL); #endif } /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif CYTHON_MAYBE_UNUSED_VAR(tstate); if (unlikely(!__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, *cython_runtime_dict, __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) } else #endif { PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); if (use_cline_obj) { use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; Py_DECREF(use_cline_obj); } else { PyErr_Clear(); use_cline = NULL; } } if (!use_cline) { c_line = 0; (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache */ #if !CYTHON_COMPILING_IN_LIMITED_API static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } #endif /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" #if PY_VERSION_HEX >= 0x030b00a6 #ifndef Py_BUILD_CORE #define Py_BUILD_CORE 1 #endif #include "internal/pycore_frame.h" #endif #if CYTHON_COMPILING_IN_LIMITED_API static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { if (c_line) { (void) __pyx_cfilenm; (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line); } _PyTraceback_Add(funcname, filename, py_line); } #else static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = NULL; PyObject *py_funcname = NULL; #if PY_MAJOR_VERSION < 3 PyObject *py_srcfile = NULL; py_srcfile = PyString_FromString(filename); if (!py_srcfile) goto bad; #endif if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); if (!py_funcname) goto bad; #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); if (!py_funcname) goto bad; funcname = PyUnicode_AsUTF8(py_funcname); if (!funcname) goto bad; #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); if (!py_funcname) goto bad; #endif } #if PY_MAJOR_VERSION < 3 py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); #else py_code = PyCode_NewEmpty(filename, funcname, py_line); #endif Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline return py_code; bad: Py_XDECREF(py_funcname); #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_srcfile); #endif return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) { /* If the code object creation fails, then we should clear the fetched exception references and propagate the new exception */ Py_XDECREF(ptype); Py_XDECREF(pvalue); Py_XDECREF(ptraceback); goto bad; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #endif /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const int neg_one = (int) -1, const_zero = (int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const int neg_one = (int) -1, const_zero = (int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(int) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(int) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } } #endif if ((sizeof(int) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (int) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (int) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (int) -1; } else { stepval = __Pyx_NewRef(v); } val = (int) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((int) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((int) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_gid_t(gid_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const gid_t neg_one = (gid_t) -1, const_zero = (gid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(gid_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(gid_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(gid_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(gid_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(gid_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(gid_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE gid_t __Pyx_PyInt_As_gid_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const gid_t neg_one = (gid_t) -1, const_zero = (gid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(gid_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(gid_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (gid_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(gid_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(gid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) >= 2 * PyLong_SHIFT)) { return (gid_t) (((((gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0])); } } break; case 3: if ((8 * sizeof(gid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) >= 3 * PyLong_SHIFT)) { return (gid_t) (((((((gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0])); } } break; case 4: if ((8 * sizeof(gid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) >= 4 * PyLong_SHIFT)) { return (gid_t) (((((((((gid_t)digits[3]) << PyLong_SHIFT) | (gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (gid_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(gid_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(gid_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(gid_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(gid_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 2 * PyLong_SHIFT)) { return (gid_t) (((gid_t)-1)*(((((gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case 2: if ((8 * sizeof(gid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 2 * PyLong_SHIFT)) { return (gid_t) ((((((gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case -3: if ((8 * sizeof(gid_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 3 * PyLong_SHIFT)) { return (gid_t) (((gid_t)-1)*(((((((gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case 3: if ((8 * sizeof(gid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 3 * PyLong_SHIFT)) { return (gid_t) ((((((((gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case -4: if ((8 * sizeof(gid_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 4 * PyLong_SHIFT)) { return (gid_t) (((gid_t)-1)*(((((((((gid_t)digits[3]) << PyLong_SHIFT) | (gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case 4: if ((8 * sizeof(gid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 4 * PyLong_SHIFT)) { return (gid_t) ((((((((((gid_t)digits[3]) << PyLong_SHIFT) | (gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; } } #endif if ((sizeof(gid_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(gid_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { gid_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (gid_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (gid_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (gid_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (gid_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (gid_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(gid_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((gid_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(gid_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((gid_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((gid_t) 1) << (sizeof(gid_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (gid_t) -1; } } else { gid_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (gid_t) -1; val = __Pyx_PyInt_As_gid_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to gid_t"); return (gid_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to gid_t"); return (gid_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_pid_t(pid_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const pid_t neg_one = (pid_t) -1, const_zero = (pid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(pid_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(pid_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(pid_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(pid_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(pid_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(pid_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE pid_t __Pyx_PyInt_As_pid_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const pid_t neg_one = (pid_t) -1, const_zero = (pid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(pid_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(pid_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (pid_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(pid_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(pid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) >= 2 * PyLong_SHIFT)) { return (pid_t) (((((pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0])); } } break; case 3: if ((8 * sizeof(pid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) >= 3 * PyLong_SHIFT)) { return (pid_t) (((((((pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0])); } } break; case 4: if ((8 * sizeof(pid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) >= 4 * PyLong_SHIFT)) { return (pid_t) (((((((((pid_t)digits[3]) << PyLong_SHIFT) | (pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (pid_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(pid_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(pid_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(pid_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(pid_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 2 * PyLong_SHIFT)) { return (pid_t) (((pid_t)-1)*(((((pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case 2: if ((8 * sizeof(pid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 2 * PyLong_SHIFT)) { return (pid_t) ((((((pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case -3: if ((8 * sizeof(pid_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 3 * PyLong_SHIFT)) { return (pid_t) (((pid_t)-1)*(((((((pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case 3: if ((8 * sizeof(pid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 3 * PyLong_SHIFT)) { return (pid_t) ((((((((pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case -4: if ((8 * sizeof(pid_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 4 * PyLong_SHIFT)) { return (pid_t) (((pid_t)-1)*(((((((((pid_t)digits[3]) << PyLong_SHIFT) | (pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case 4: if ((8 * sizeof(pid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 4 * PyLong_SHIFT)) { return (pid_t) ((((((((((pid_t)digits[3]) << PyLong_SHIFT) | (pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; } } #endif if ((sizeof(pid_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(pid_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { pid_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (pid_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (pid_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (pid_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (pid_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (pid_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(pid_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((pid_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(pid_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((pid_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((pid_t) 1) << (sizeof(pid_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (pid_t) -1; } } else { pid_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (pid_t) -1; val = __Pyx_PyInt_As_pid_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to pid_t"); return (pid_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to pid_t"); return (pid_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uid_t(uid_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uid_t neg_one = (uid_t) -1, const_zero = (uid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(uid_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(uid_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(uid_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(uid_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(uid_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(uid_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE uid_t __Pyx_PyInt_As_uid_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uid_t neg_one = (uid_t) -1, const_zero = (uid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(uid_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(uid_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (uid_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uid_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(uid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) >= 2 * PyLong_SHIFT)) { return (uid_t) (((((uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0])); } } break; case 3: if ((8 * sizeof(uid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) >= 3 * PyLong_SHIFT)) { return (uid_t) (((((((uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0])); } } break; case 4: if ((8 * sizeof(uid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) >= 4 * PyLong_SHIFT)) { return (uid_t) (((((((((uid_t)digits[3]) << PyLong_SHIFT) | (uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (uid_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(uid_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(uid_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uid_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(uid_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 2 * PyLong_SHIFT)) { return (uid_t) (((uid_t)-1)*(((((uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case 2: if ((8 * sizeof(uid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 2 * PyLong_SHIFT)) { return (uid_t) ((((((uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case -3: if ((8 * sizeof(uid_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 3 * PyLong_SHIFT)) { return (uid_t) (((uid_t)-1)*(((((((uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case 3: if ((8 * sizeof(uid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 3 * PyLong_SHIFT)) { return (uid_t) ((((((((uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case -4: if ((8 * sizeof(uid_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 4 * PyLong_SHIFT)) { return (uid_t) (((uid_t)-1)*(((((((((uid_t)digits[3]) << PyLong_SHIFT) | (uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case 4: if ((8 * sizeof(uid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 4 * PyLong_SHIFT)) { return (uid_t) ((((((((((uid_t)digits[3]) << PyLong_SHIFT) | (uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; } } #endif if ((sizeof(uid_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(uid_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { uid_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (uid_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (uid_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (uid_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (uid_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (uid_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(uid_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((uid_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(uid_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((uid_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((uid_t) 1) << (sizeof(uid_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (uid_t) -1; } } else { uid_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (uid_t) -1; val = __Pyx_PyInt_As_uid_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to uid_t"); return (uid_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to uid_t"); return (uid_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mode_t(mode_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const mode_t neg_one = (mode_t) -1, const_zero = (mode_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(mode_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(mode_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(mode_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(mode_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(mode_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(mode_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE mode_t __Pyx_PyInt_As_mode_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const mode_t neg_one = (mode_t) -1, const_zero = (mode_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(mode_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(mode_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (mode_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(mode_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(mode_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) >= 2 * PyLong_SHIFT)) { return (mode_t) (((((mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0])); } } break; case 3: if ((8 * sizeof(mode_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) >= 3 * PyLong_SHIFT)) { return (mode_t) (((((((mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0])); } } break; case 4: if ((8 * sizeof(mode_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) >= 4 * PyLong_SHIFT)) { return (mode_t) (((((((((mode_t)digits[3]) << PyLong_SHIFT) | (mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (mode_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(mode_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(mode_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(mode_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(mode_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 2 * PyLong_SHIFT)) { return (mode_t) (((mode_t)-1)*(((((mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case 2: if ((8 * sizeof(mode_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 2 * PyLong_SHIFT)) { return (mode_t) ((((((mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case -3: if ((8 * sizeof(mode_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 3 * PyLong_SHIFT)) { return (mode_t) (((mode_t)-1)*(((((((mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case 3: if ((8 * sizeof(mode_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 3 * PyLong_SHIFT)) { return (mode_t) ((((((((mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case -4: if ((8 * sizeof(mode_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 4 * PyLong_SHIFT)) { return (mode_t) (((mode_t)-1)*(((((((((mode_t)digits[3]) << PyLong_SHIFT) | (mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case 4: if ((8 * sizeof(mode_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 4 * PyLong_SHIFT)) { return (mode_t) ((((((((((mode_t)digits[3]) << PyLong_SHIFT) | (mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; } } #endif if ((sizeof(mode_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(mode_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { mode_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (mode_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (mode_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (mode_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (mode_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (mode_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(mode_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((mode_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(mode_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((mode_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((mode_t) 1) << (sizeof(mode_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (mode_t) -1; } } else { mode_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (mode_t) -1; val = __Pyx_PyInt_As_mode_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to mode_t"); return (mode_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to mode_t"); return (mode_t) -1; } /* CIntFromPy */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(size_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (size_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) >= 2 * PyLong_SHIFT)) { return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 3: if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) >= 3 * PyLong_SHIFT)) { return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 4: if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) >= 4 * PyLong_SHIFT)) { return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (size_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(size_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 2: if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -3: if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 3: if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -4: if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) { return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 4: if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) { return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; } } #endif if ((sizeof(size_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(size_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { size_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (size_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (size_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (size_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (size_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (size_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((size_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((size_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (size_t) -1; } } else { size_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (size_t) -1; val = __Pyx_PyInt_As_size_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to size_t"); return (size_t) -1; } /* CIntFromPy */ static CYTHON_INLINE fuse_ino_t __Pyx_PyInt_As_fuse_ino_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fuse_ino_t neg_one = (fuse_ino_t) -1, const_zero = (fuse_ino_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(fuse_ino_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (fuse_ino_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(fuse_ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) >= 2 * PyLong_SHIFT)) { return (fuse_ino_t) (((((fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0])); } } break; case 3: if ((8 * sizeof(fuse_ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) >= 3 * PyLong_SHIFT)) { return (fuse_ino_t) (((((((fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0])); } } break; case 4: if ((8 * sizeof(fuse_ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) >= 4 * PyLong_SHIFT)) { return (fuse_ino_t) (((((((((fuse_ino_t)digits[3]) << PyLong_SHIFT) | (fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fuse_ino_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(fuse_ino_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(fuse_ino_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(fuse_ino_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 2 * PyLong_SHIFT)) { return (fuse_ino_t) (((fuse_ino_t)-1)*(((((fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case 2: if ((8 * sizeof(fuse_ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 2 * PyLong_SHIFT)) { return (fuse_ino_t) ((((((fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case -3: if ((8 * sizeof(fuse_ino_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 3 * PyLong_SHIFT)) { return (fuse_ino_t) (((fuse_ino_t)-1)*(((((((fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case 3: if ((8 * sizeof(fuse_ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 3 * PyLong_SHIFT)) { return (fuse_ino_t) ((((((((fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case -4: if ((8 * sizeof(fuse_ino_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 4 * PyLong_SHIFT)) { return (fuse_ino_t) (((fuse_ino_t)-1)*(((((((((fuse_ino_t)digits[3]) << PyLong_SHIFT) | (fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case 4: if ((8 * sizeof(fuse_ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 4 * PyLong_SHIFT)) { return (fuse_ino_t) ((((((((((fuse_ino_t)digits[3]) << PyLong_SHIFT) | (fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; } } #endif if ((sizeof(fuse_ino_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(fuse_ino_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { fuse_ino_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (fuse_ino_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (fuse_ino_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fuse_ino_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (fuse_ino_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (fuse_ino_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(fuse_ino_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((fuse_ino_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(fuse_ino_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((fuse_ino_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((fuse_ino_t) 1) << (sizeof(fuse_ino_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (fuse_ino_t) -1; } } else { fuse_ino_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (fuse_ino_t) -1; val = __Pyx_PyInt_As_fuse_ino_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to fuse_ino_t"); return (fuse_ino_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to fuse_ino_t"); return (fuse_ino_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fuse_ino_t(fuse_ino_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fuse_ino_t neg_one = (fuse_ino_t) -1, const_zero = (fuse_ino_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(fuse_ino_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(fuse_ino_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(fuse_ino_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(fuse_ino_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(fuse_ino_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(fuse_ino_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE off_t __Pyx_PyInt_As_off_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const off_t neg_one = (off_t) -1, const_zero = (off_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(off_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(off_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (off_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(off_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(off_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) >= 2 * PyLong_SHIFT)) { return (off_t) (((((off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0])); } } break; case 3: if ((8 * sizeof(off_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) >= 3 * PyLong_SHIFT)) { return (off_t) (((((((off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0])); } } break; case 4: if ((8 * sizeof(off_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) >= 4 * PyLong_SHIFT)) { return (off_t) (((((((((off_t)digits[3]) << PyLong_SHIFT) | (off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (off_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(off_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(off_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(off_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(off_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 2 * PyLong_SHIFT)) { return (off_t) (((off_t)-1)*(((((off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case 2: if ((8 * sizeof(off_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 2 * PyLong_SHIFT)) { return (off_t) ((((((off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case -3: if ((8 * sizeof(off_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 3 * PyLong_SHIFT)) { return (off_t) (((off_t)-1)*(((((((off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case 3: if ((8 * sizeof(off_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 3 * PyLong_SHIFT)) { return (off_t) ((((((((off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case -4: if ((8 * sizeof(off_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 4 * PyLong_SHIFT)) { return (off_t) (((off_t)-1)*(((((((((off_t)digits[3]) << PyLong_SHIFT) | (off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case 4: if ((8 * sizeof(off_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 4 * PyLong_SHIFT)) { return (off_t) ((((((((((off_t)digits[3]) << PyLong_SHIFT) | (off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; } } #endif if ((sizeof(off_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(off_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { off_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (off_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (off_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (off_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (off_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (off_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(off_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((off_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(off_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((off_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((off_t) 1) << (sizeof(off_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (off_t) -1; } } else { off_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (off_t) -1; val = __Pyx_PyInt_As_off_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to off_t"); return (off_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to off_t"); return (off_t) -1; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(long) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(long) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } } #endif if ((sizeof(long) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (long) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (long) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (long) -1; } else { stepval = __Pyx_NewRef(v); } val = (long) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((long) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((long) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(unsigned int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(unsigned int), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(uint64_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(uint64_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(uint64_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(uint64_t), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_dev_t(dev_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const dev_t neg_one = (dev_t) -1, const_zero = (dev_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(dev_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(dev_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(dev_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(dev_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(dev_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(dev_t), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_off_t(off_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const off_t neg_one = (off_t) -1, const_zero = (off_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(off_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(off_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(off_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(off_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(off_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(off_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(uint64_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(uint64_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (uint64_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uint64_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(uint64_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) >= 2 * PyLong_SHIFT)) { return (uint64_t) (((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])); } } break; case 3: if ((8 * sizeof(uint64_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) >= 3 * PyLong_SHIFT)) { return (uint64_t) (((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])); } } break; case 4: if ((8 * sizeof(uint64_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) >= 4 * PyLong_SHIFT)) { return (uint64_t) (((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (uint64_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(uint64_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uint64_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(uint64_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) { return (uint64_t) (((uint64_t)-1)*(((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case 2: if ((8 * sizeof(uint64_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) { return (uint64_t) ((((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case -3: if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) { return (uint64_t) (((uint64_t)-1)*(((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case 3: if ((8 * sizeof(uint64_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) { return (uint64_t) ((((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case -4: if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT)) { return (uint64_t) (((uint64_t)-1)*(((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case 4: if ((8 * sizeof(uint64_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT)) { return (uint64_t) ((((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; } } #endif if ((sizeof(uint64_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(uint64_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { uint64_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (uint64_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (uint64_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (uint64_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (uint64_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (uint64_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(uint64_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((uint64_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(uint64_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((uint64_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((uint64_t) 1) << (sizeof(uint64_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (uint64_t) -1; } } else { uint64_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (uint64_t) -1; val = __Pyx_PyInt_As_uint64_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to uint64_t"); return (uint64_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to uint64_t"); return (uint64_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE ino_t __Pyx_PyInt_As_ino_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const ino_t neg_one = (ino_t) -1, const_zero = (ino_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(ino_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(ino_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (ino_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(ino_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) >= 2 * PyLong_SHIFT)) { return (ino_t) (((((ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0])); } } break; case 3: if ((8 * sizeof(ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) >= 3 * PyLong_SHIFT)) { return (ino_t) (((((((ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0])); } } break; case 4: if ((8 * sizeof(ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) >= 4 * PyLong_SHIFT)) { return (ino_t) (((((((((ino_t)digits[3]) << PyLong_SHIFT) | (ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (ino_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(ino_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(ino_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(ino_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(ino_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 2 * PyLong_SHIFT)) { return (ino_t) (((ino_t)-1)*(((((ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case 2: if ((8 * sizeof(ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 2 * PyLong_SHIFT)) { return (ino_t) ((((((ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case -3: if ((8 * sizeof(ino_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 3 * PyLong_SHIFT)) { return (ino_t) (((ino_t)-1)*(((((((ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case 3: if ((8 * sizeof(ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 3 * PyLong_SHIFT)) { return (ino_t) ((((((((ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case -4: if ((8 * sizeof(ino_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 4 * PyLong_SHIFT)) { return (ino_t) (((ino_t)-1)*(((((((((ino_t)digits[3]) << PyLong_SHIFT) | (ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case 4: if ((8 * sizeof(ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 4 * PyLong_SHIFT)) { return (ino_t) ((((((((((ino_t)digits[3]) << PyLong_SHIFT) | (ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; } } #endif if ((sizeof(ino_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(ino_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { ino_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (ino_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (ino_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (ino_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (ino_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (ino_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(ino_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((ino_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(ino_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((ino_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((ino_t) 1) << (sizeof(ino_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (ino_t) -1; } } else { ino_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (ino_t) -1; val = __Pyx_PyInt_As_ino_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to ino_t"); return (ino_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to ino_t"); return (ino_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_nlink_t(nlink_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const nlink_t neg_one = (nlink_t) -1, const_zero = (nlink_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(nlink_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(nlink_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(nlink_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(nlink_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(nlink_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(nlink_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE nlink_t __Pyx_PyInt_As_nlink_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const nlink_t neg_one = (nlink_t) -1, const_zero = (nlink_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(nlink_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(nlink_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (nlink_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(nlink_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(nlink_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) >= 2 * PyLong_SHIFT)) { return (nlink_t) (((((nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0])); } } break; case 3: if ((8 * sizeof(nlink_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) >= 3 * PyLong_SHIFT)) { return (nlink_t) (((((((nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0])); } } break; case 4: if ((8 * sizeof(nlink_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) >= 4 * PyLong_SHIFT)) { return (nlink_t) (((((((((nlink_t)digits[3]) << PyLong_SHIFT) | (nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (nlink_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(nlink_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(nlink_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(nlink_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(nlink_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 2 * PyLong_SHIFT)) { return (nlink_t) (((nlink_t)-1)*(((((nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case 2: if ((8 * sizeof(nlink_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 2 * PyLong_SHIFT)) { return (nlink_t) ((((((nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case -3: if ((8 * sizeof(nlink_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 3 * PyLong_SHIFT)) { return (nlink_t) (((nlink_t)-1)*(((((((nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case 3: if ((8 * sizeof(nlink_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 3 * PyLong_SHIFT)) { return (nlink_t) ((((((((nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case -4: if ((8 * sizeof(nlink_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 4 * PyLong_SHIFT)) { return (nlink_t) (((nlink_t)-1)*(((((((((nlink_t)digits[3]) << PyLong_SHIFT) | (nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case 4: if ((8 * sizeof(nlink_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 4 * PyLong_SHIFT)) { return (nlink_t) ((((((((((nlink_t)digits[3]) << PyLong_SHIFT) | (nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; } } #endif if ((sizeof(nlink_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(nlink_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { nlink_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (nlink_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (nlink_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (nlink_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (nlink_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (nlink_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(nlink_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((nlink_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(nlink_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((nlink_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((nlink_t) 1) << (sizeof(nlink_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (nlink_t) -1; } } else { nlink_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (nlink_t) -1; val = __Pyx_PyInt_As_nlink_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to nlink_t"); return (nlink_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to nlink_t"); return (nlink_t) -1; } /* CIntFromPy */ static CYTHON_INLINE dev_t __Pyx_PyInt_As_dev_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const dev_t neg_one = (dev_t) -1, const_zero = (dev_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(dev_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(dev_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (dev_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(dev_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(dev_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) >= 2 * PyLong_SHIFT)) { return (dev_t) (((((dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0])); } } break; case 3: if ((8 * sizeof(dev_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) >= 3 * PyLong_SHIFT)) { return (dev_t) (((((((dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0])); } } break; case 4: if ((8 * sizeof(dev_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) >= 4 * PyLong_SHIFT)) { return (dev_t) (((((((((dev_t)digits[3]) << PyLong_SHIFT) | (dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (dev_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(dev_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(dev_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(dev_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(dev_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 2 * PyLong_SHIFT)) { return (dev_t) (((dev_t)-1)*(((((dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case 2: if ((8 * sizeof(dev_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 2 * PyLong_SHIFT)) { return (dev_t) ((((((dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case -3: if ((8 * sizeof(dev_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 3 * PyLong_SHIFT)) { return (dev_t) (((dev_t)-1)*(((((((dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case 3: if ((8 * sizeof(dev_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 3 * PyLong_SHIFT)) { return (dev_t) ((((((((dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case -4: if ((8 * sizeof(dev_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 4 * PyLong_SHIFT)) { return (dev_t) (((dev_t)-1)*(((((((((dev_t)digits[3]) << PyLong_SHIFT) | (dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case 4: if ((8 * sizeof(dev_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 4 * PyLong_SHIFT)) { return (dev_t) ((((((((((dev_t)digits[3]) << PyLong_SHIFT) | (dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; } } #endif if ((sizeof(dev_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(dev_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { dev_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (dev_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (dev_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (dev_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (dev_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (dev_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(dev_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((dev_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(dev_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((dev_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((dev_t) 1) << (sizeof(dev_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (dev_t) -1; } } else { dev_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (dev_t) -1; val = __Pyx_PyInt_As_dev_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to dev_t"); return (dev_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to dev_t"); return (dev_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_blkcnt_t(blkcnt_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blkcnt_t neg_one = (blkcnt_t) -1, const_zero = (blkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(blkcnt_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(blkcnt_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(blkcnt_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(blkcnt_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(blkcnt_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(blkcnt_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE blkcnt_t __Pyx_PyInt_As_blkcnt_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blkcnt_t neg_one = (blkcnt_t) -1, const_zero = (blkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(blkcnt_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(blkcnt_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (blkcnt_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(blkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) >= 2 * PyLong_SHIFT)) { return (blkcnt_t) (((((blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0])); } } break; case 3: if ((8 * sizeof(blkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) >= 3 * PyLong_SHIFT)) { return (blkcnt_t) (((((((blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0])); } } break; case 4: if ((8 * sizeof(blkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) >= 4 * PyLong_SHIFT)) { return (blkcnt_t) (((((((((blkcnt_t)digits[3]) << PyLong_SHIFT) | (blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (blkcnt_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(blkcnt_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(blkcnt_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(blkcnt_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (blkcnt_t) (((blkcnt_t)-1)*(((((blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case 2: if ((8 * sizeof(blkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (blkcnt_t) ((((((blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case -3: if ((8 * sizeof(blkcnt_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (blkcnt_t) (((blkcnt_t)-1)*(((((((blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case 3: if ((8 * sizeof(blkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (blkcnt_t) ((((((((blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case -4: if ((8 * sizeof(blkcnt_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (blkcnt_t) (((blkcnt_t)-1)*(((((((((blkcnt_t)digits[3]) << PyLong_SHIFT) | (blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case 4: if ((8 * sizeof(blkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (blkcnt_t) ((((((((((blkcnt_t)digits[3]) << PyLong_SHIFT) | (blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; } } #endif if ((sizeof(blkcnt_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(blkcnt_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { blkcnt_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (blkcnt_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (blkcnt_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (blkcnt_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (blkcnt_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (blkcnt_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(blkcnt_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((blkcnt_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(blkcnt_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((blkcnt_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((blkcnt_t) 1) << (sizeof(blkcnt_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (blkcnt_t) -1; } } else { blkcnt_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (blkcnt_t) -1; val = __Pyx_PyInt_As_blkcnt_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to blkcnt_t"); return (blkcnt_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to blkcnt_t"); return (blkcnt_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_blksize_t(blksize_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blksize_t neg_one = (blksize_t) -1, const_zero = (blksize_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(blksize_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(blksize_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(blksize_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(blksize_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(blksize_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(blksize_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE blksize_t __Pyx_PyInt_As_blksize_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blksize_t neg_one = (blksize_t) -1, const_zero = (blksize_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(blksize_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(blksize_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (blksize_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blksize_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(blksize_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) >= 2 * PyLong_SHIFT)) { return (blksize_t) (((((blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0])); } } break; case 3: if ((8 * sizeof(blksize_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) >= 3 * PyLong_SHIFT)) { return (blksize_t) (((((((blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0])); } } break; case 4: if ((8 * sizeof(blksize_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) >= 4 * PyLong_SHIFT)) { return (blksize_t) (((((((((blksize_t)digits[3]) << PyLong_SHIFT) | (blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (blksize_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(blksize_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(blksize_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blksize_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(blksize_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 2 * PyLong_SHIFT)) { return (blksize_t) (((blksize_t)-1)*(((((blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case 2: if ((8 * sizeof(blksize_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 2 * PyLong_SHIFT)) { return (blksize_t) ((((((blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case -3: if ((8 * sizeof(blksize_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 3 * PyLong_SHIFT)) { return (blksize_t) (((blksize_t)-1)*(((((((blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case 3: if ((8 * sizeof(blksize_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 3 * PyLong_SHIFT)) { return (blksize_t) ((((((((blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case -4: if ((8 * sizeof(blksize_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 4 * PyLong_SHIFT)) { return (blksize_t) (((blksize_t)-1)*(((((((((blksize_t)digits[3]) << PyLong_SHIFT) | (blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case 4: if ((8 * sizeof(blksize_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 4 * PyLong_SHIFT)) { return (blksize_t) ((((((((((blksize_t)digits[3]) << PyLong_SHIFT) | (blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; } } #endif if ((sizeof(blksize_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(blksize_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { blksize_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (blksize_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (blksize_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (blksize_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (blksize_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (blksize_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(blksize_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((blksize_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(blksize_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((blksize_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((blksize_t) 1) << (sizeof(blksize_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (blksize_t) -1; } } else { blksize_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (blksize_t) -1; val = __Pyx_PyInt_As_blksize_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to blksize_t"); return (blksize_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to blksize_t"); return (blksize_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_time_t(time_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const time_t neg_one = (time_t) -1, const_zero = (time_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(time_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(time_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(time_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(time_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(time_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(time_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE time_t __Pyx_PyInt_As_time_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const time_t neg_one = (time_t) -1, const_zero = (time_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(time_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(time_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (time_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(time_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(time_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) >= 2 * PyLong_SHIFT)) { return (time_t) (((((time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0])); } } break; case 3: if ((8 * sizeof(time_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) >= 3 * PyLong_SHIFT)) { return (time_t) (((((((time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0])); } } break; case 4: if ((8 * sizeof(time_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) >= 4 * PyLong_SHIFT)) { return (time_t) (((((((((time_t)digits[3]) << PyLong_SHIFT) | (time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (time_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(time_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(time_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(time_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(time_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT)) { return (time_t) (((time_t)-1)*(((((time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case 2: if ((8 * sizeof(time_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT)) { return (time_t) ((((((time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case -3: if ((8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT)) { return (time_t) (((time_t)-1)*(((((((time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case 3: if ((8 * sizeof(time_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT)) { return (time_t) ((((((((time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case -4: if ((8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 4 * PyLong_SHIFT)) { return (time_t) (((time_t)-1)*(((((((((time_t)digits[3]) << PyLong_SHIFT) | (time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case 4: if ((8 * sizeof(time_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 4 * PyLong_SHIFT)) { return (time_t) ((((((((((time_t)digits[3]) << PyLong_SHIFT) | (time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; } } #endif if ((sizeof(time_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(time_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { time_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (time_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (time_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (time_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (time_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (time_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(time_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((time_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(time_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((time_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((time_t) 1) << (sizeof(time_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (time_t) -1; } } else { time_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (time_t) -1; val = __Pyx_PyInt_As_time_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to time_t"); return (time_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to time_t"); return (time_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const unsigned long neg_one = (unsigned long) -1, const_zero = (unsigned long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(unsigned long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(unsigned long), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE unsigned long __Pyx_PyInt_As_unsigned_long(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const unsigned long neg_one = (unsigned long) -1, const_zero = (unsigned long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(unsigned long) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(unsigned long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (unsigned long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(unsigned long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(unsigned long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) >= 2 * PyLong_SHIFT)) { return (unsigned long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); } } break; case 3: if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) >= 3 * PyLong_SHIFT)) { return (unsigned long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); } } break; case 4: if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) >= 4 * PyLong_SHIFT)) { return (unsigned long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(unsigned long) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(unsigned long) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(unsigned long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(unsigned long) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT)) { return (unsigned long) (((unsigned long)-1)*(((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case 2: if ((8 * sizeof(unsigned long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT)) { return (unsigned long) ((((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case -3: if ((8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT)) { return (unsigned long) (((unsigned long)-1)*(((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case 3: if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT)) { return (unsigned long) ((((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case -4: if ((8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 4 * PyLong_SHIFT)) { return (unsigned long) (((unsigned long)-1)*(((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case 4: if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 4 * PyLong_SHIFT)) { return (unsigned long) ((((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; } } #endif if ((sizeof(unsigned long) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(unsigned long) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { unsigned long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (unsigned long) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (unsigned long) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned long) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (unsigned long) -1; } else { stepval = __Pyx_NewRef(v); } val = (unsigned long) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(unsigned long) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((unsigned long) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(unsigned long) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((unsigned long) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((unsigned long) 1) << (sizeof(unsigned long) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (unsigned long) -1; } } else { unsigned long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (unsigned long) -1; val = __Pyx_PyInt_As_unsigned_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned long"); return (unsigned long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fsblkcnt_t(fsblkcnt_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsblkcnt_t neg_one = (fsblkcnt_t) -1, const_zero = (fsblkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(fsblkcnt_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(fsblkcnt_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(fsblkcnt_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(fsblkcnt_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(fsblkcnt_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(fsblkcnt_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE fsblkcnt_t __Pyx_PyInt_As_fsblkcnt_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsblkcnt_t neg_one = (fsblkcnt_t) -1, const_zero = (fsblkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(fsblkcnt_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (fsblkcnt_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(fsblkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) >= 2 * PyLong_SHIFT)) { return (fsblkcnt_t) (((((fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0])); } } break; case 3: if ((8 * sizeof(fsblkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) >= 3 * PyLong_SHIFT)) { return (fsblkcnt_t) (((((((fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0])); } } break; case 4: if ((8 * sizeof(fsblkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) >= 4 * PyLong_SHIFT)) { return (fsblkcnt_t) (((((((((fsblkcnt_t)digits[3]) << PyLong_SHIFT) | (fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fsblkcnt_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(fsblkcnt_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(fsblkcnt_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(fsblkcnt_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsblkcnt_t) (((fsblkcnt_t)-1)*(((((fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case 2: if ((8 * sizeof(fsblkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsblkcnt_t) ((((((fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case -3: if ((8 * sizeof(fsblkcnt_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsblkcnt_t) (((fsblkcnt_t)-1)*(((((((fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case 3: if ((8 * sizeof(fsblkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsblkcnt_t) ((((((((fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case -4: if ((8 * sizeof(fsblkcnt_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsblkcnt_t) (((fsblkcnt_t)-1)*(((((((((fsblkcnt_t)digits[3]) << PyLong_SHIFT) | (fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case 4: if ((8 * sizeof(fsblkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsblkcnt_t) ((((((((((fsblkcnt_t)digits[3]) << PyLong_SHIFT) | (fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; } } #endif if ((sizeof(fsblkcnt_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(fsblkcnt_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { fsblkcnt_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (fsblkcnt_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (fsblkcnt_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fsblkcnt_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (fsblkcnt_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (fsblkcnt_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(fsblkcnt_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((fsblkcnt_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(fsblkcnt_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((fsblkcnt_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((fsblkcnt_t) 1) << (sizeof(fsblkcnt_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (fsblkcnt_t) -1; } } else { fsblkcnt_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (fsblkcnt_t) -1; val = __Pyx_PyInt_As_fsblkcnt_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to fsblkcnt_t"); return (fsblkcnt_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to fsblkcnt_t"); return (fsblkcnt_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fsfilcnt_t(fsfilcnt_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsfilcnt_t neg_one = (fsfilcnt_t) -1, const_zero = (fsfilcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(fsfilcnt_t) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(fsfilcnt_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(fsfilcnt_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(fsfilcnt_t) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(fsfilcnt_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(fsfilcnt_t), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE fsfilcnt_t __Pyx_PyInt_As_fsfilcnt_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsfilcnt_t neg_one = (fsfilcnt_t) -1, const_zero = (fsfilcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(fsfilcnt_t) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (fsfilcnt_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(fsfilcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) >= 2 * PyLong_SHIFT)) { return (fsfilcnt_t) (((((fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0])); } } break; case 3: if ((8 * sizeof(fsfilcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) >= 3 * PyLong_SHIFT)) { return (fsfilcnt_t) (((((((fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0])); } } break; case 4: if ((8 * sizeof(fsfilcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) >= 4 * PyLong_SHIFT)) { return (fsfilcnt_t) (((((((((fsfilcnt_t)digits[3]) << PyLong_SHIFT) | (fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fsfilcnt_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(fsfilcnt_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(fsfilcnt_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(fsfilcnt_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsfilcnt_t) (((fsfilcnt_t)-1)*(((((fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case 2: if ((8 * sizeof(fsfilcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsfilcnt_t) ((((((fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case -3: if ((8 * sizeof(fsfilcnt_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsfilcnt_t) (((fsfilcnt_t)-1)*(((((((fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case 3: if ((8 * sizeof(fsfilcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsfilcnt_t) ((((((((fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case -4: if ((8 * sizeof(fsfilcnt_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsfilcnt_t) (((fsfilcnt_t)-1)*(((((((((fsfilcnt_t)digits[3]) << PyLong_SHIFT) | (fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case 4: if ((8 * sizeof(fsfilcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsfilcnt_t) ((((((((((fsfilcnt_t)digits[3]) << PyLong_SHIFT) | (fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; } } #endif if ((sizeof(fsfilcnt_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(fsfilcnt_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { fsfilcnt_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int ret = -1; #if !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; long idigit; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (unlikely(!PyLong_CheckExact(v))) { PyObject *tmp = v; v = PyNumber_Long(v); assert(PyLong_CheckExact(v)); Py_DECREF(tmp); if (unlikely(!v)) return (fsfilcnt_t) -1; } #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(x) == 0) return (fsfilcnt_t) 0; is_negative = Py_SIZE(x) < 0; #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fsfilcnt_t) -1; is_negative = result == 1; } #endif if (is_unsigned && unlikely(is_negative)) { goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); if (unlikely(!stepval)) return (fsfilcnt_t) -1; } else { stepval = __Pyx_NewRef(v); } val = (fsfilcnt_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(fsfilcnt_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; val |= ((fsfilcnt_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 if (Py_SIZE(stepval) == 0) goto unpacking_done; #endif } idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(fsfilcnt_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((fsfilcnt_t) idigit) << bits; #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 unpacking_done: #endif if (!is_unsigned) { if (unlikely(val & (((fsfilcnt_t) 1) << (sizeof(fsfilcnt_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif Py_DECREF(v); if (likely(!ret)) return val; } return (fsfilcnt_t) -1; } } else { fsfilcnt_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (fsfilcnt_t) -1; val = __Pyx_PyInt_As_fsfilcnt_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to fsfilcnt_t"); return (fsfilcnt_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to fsfilcnt_t"); return (fsfilcnt_t) -1; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[5]; int same=1, i, found_dot; const char* rt_from_call = Py_GetVersion(); PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); found_dot = 0; for (i = 0; i < 4; i++) { if (!ctversion[i]) { same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); break; } if (rt_from_call[i] != ctversion[i]) { same = 0; break; } } if (!same) { char rtversion[5] = {'\0'}; char message[200]; for (i=0; i<4; ++i) { if (rt_from_call[i] == '.') { if (found_dot) break; found_dot = 1; } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { break; } rtversion[i] = rt_from_call[i]; } PyOS_snprintf(message, sizeof(message), "compile time version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* InitStrings */ #if PY_MAJOR_VERSION >= 3 static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) { if (t.is_unicode | t.is_str) { if (t.intern) { *str = PyUnicode_InternFromString(t.s); } else if (t.encoding) { *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL); } else { *str = PyUnicode_FromStringAndSize(t.s, t.n - 1); } } else { *str = PyBytes_FromStringAndSize(t.s, t.n - 1); } if (!*str) return -1; if (PyObject_Hash(*str) == -1) return -1; return 0; } #endif static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION >= 3 __Pyx_InitString(*t, t->p); #else if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) return -1; #endif ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT #if !CYTHON_PEP393_ENABLED static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; } #else static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif } #endif #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif #if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result)); #if PY_MAJOR_VERSION >= 3 if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). " "The ability to return an instance of a strict subclass of int is deprecated, " "and may be removed in a future version of Python.", result_type_name)) { __Pyx_DECREF_TypeName(result_type_name); Py_DECREF(result); return NULL; } __Pyx_DECREF_TypeName(result_type_name); return result; } #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")", type_name, type_name, result_type_name); __Pyx_DECREF_TypeName(result_type_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x) || PyLong_Check(x))) #else if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; res = m->nb_long(x); } #else if (likely(m && m->nb_int)) { name = "int"; res = m->nb_int(x); } #endif #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Int(x); } #endif if (likely(res)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else if (unlikely(!PyLong_CheckExact(res))) { #endif return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(b); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS if (likely(__Pyx_PyLong_IsCompact(b))) { return __Pyx_PyLong_CompactValue(b); } else { const digit* digits = __Pyx_PyLong_Digits(b); const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b); switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); #if PY_MAJOR_VERSION < 3 } else if (likely(PyInt_CheckExact(o))) { return PyInt_AS_LONG(o); #endif } else { Py_ssize_t ival; PyObject *x; x = PyNumber_Index(o); if (!x) return -1; ival = PyInt_AsLong(x); Py_DECREF(x); return ival; } } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } /* #### Code section: utility_code_pragmas_end ### */ #ifdef _MSC_VER #pragma warning( pop ) #endif /* #### Code section: end ### */ #endif /* Py_PYTHON_H */ ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5559611 pyfuse3-3.3.0/src/pyfuse3.egg-info/0000775000175000017500000000000014463757517014725 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344718.0 pyfuse3-3.3.0/src/pyfuse3.egg-info/PKG-INFO0000664000175000017500000000570614463757516016031 0ustar00twtwMetadata-Version: 2.1 Name: pyfuse3 Version: 3.3.0 Summary: Python 3 bindings for libfuse 3 with async I/O support Home-page: https://github.com/libfuse/pyfuse3 Author: Nikolaus Rath Author-email: Nikolaus@rath.org License: LGPL Keywords: FUSE,python Platform: Linux Platform: FreeBSD Platform: OS X Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Filesystems Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) Classifier: Operating System :: POSIX :: Linux Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: POSIX :: BSD :: FreeBSD Classifier: Typing :: Typed Provides: pyfuse3 Requires-Python: >=3.8 License-File: LICENSE .. NOTE: We cannot use sophisticated ReST syntax (like e.g. :file:`foo`) here because this isn't rendered correctly by PyPi and/or BitBucket. Warning - no longer developed! ============================== pyfuse3 is no longer actively developed and just receiving community-contributed maintenance to keep it alive for some time. The pyfuse3 Module ================== .. start-intro pyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python. pyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball. Getting Help ------------ Please report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_. A searchable `mailing list archive`_ is kindly provided by Gmane_. Development Status ------------------ pyfuse3 is in beta. Bugs are likely. pyfuse3 uses semantic versioning. This means backwards incompatible changes in the API will be reflected in an increase of the major version number. Contributing ------------ The pyfuse3 source code is available on GitHub_. .. __: http://www.rath.org/pyfuse3-docs/ .. _libfuse 3: http://github.com/libfuse/libfuse .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _issue tracker: https://github.com/libfuse/pyfuse3/issues .. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.devel .. _Gmane: http://www.gmane.org/ .. _PyPi: https://pypi.python.org/pypi/pyfuse3/ .. _GitHub: https://github.com/libfuse/pyfuse3 .. _Trio: https://github.com/python-trio/trio .. _asyncio: https://docs.python.org/3/library/asyncio.html ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344718.0 pyfuse3-3.3.0/src/pyfuse3.egg-info/SOURCES.txt0000664000175000017500000000562114463757516016614 0ustar00twtwChanges.rst LICENSE README.rst pyproject.toml setup.cfg setup.py Include/fuse_common.pxd Include/fuse_lowlevel.pxd Include/fuse_opt.pxd Include/libc_extra.pxd doc/html/.buildinfo doc/html/about.html doc/html/asyncio.html doc/html/changes.html doc/html/data.html doc/html/example.html doc/html/fuse_api.html doc/html/general.html doc/html/genindex.html doc/html/gotchas.html doc/html/index.html doc/html/install.html doc/html/objects.inv doc/html/operations.html doc/html/py-modindex.html doc/html/search.html doc/html/searchindex.js doc/html/util.html doc/html/.doctrees/about.doctree doc/html/.doctrees/asyncio.doctree doc/html/.doctrees/changes.doctree doc/html/.doctrees/data.doctree doc/html/.doctrees/environment.pickle doc/html/.doctrees/example.doctree doc/html/.doctrees/fuse_api.doctree doc/html/.doctrees/general.doctree doc/html/.doctrees/gotchas.doctree doc/html/.doctrees/index.doctree doc/html/.doctrees/install.doctree doc/html/.doctrees/operations.doctree doc/html/.doctrees/util.doctree doc/html/_sources/about.rst.txt doc/html/_sources/asyncio.rst.txt doc/html/_sources/changes.rst.txt doc/html/_sources/data.rst.txt doc/html/_sources/example.rst.txt doc/html/_sources/fuse_api.rst.txt doc/html/_sources/general.rst.txt doc/html/_sources/gotchas.rst.txt doc/html/_sources/index.rst.txt doc/html/_sources/install.rst.txt doc/html/_sources/operations.rst.txt doc/html/_sources/util.rst.txt doc/html/_static/_sphinx_javascript_frameworks_compat.js doc/html/_static/basic.css doc/html/_static/classic.css doc/html/_static/default.css doc/html/_static/doctools.js doc/html/_static/documentation_options.js doc/html/_static/file.png doc/html/_static/jquery-3.6.0.js doc/html/_static/jquery.js doc/html/_static/language_data.js doc/html/_static/minus.png doc/html/_static/plus.png doc/html/_static/pygments.css doc/html/_static/searchtools.js doc/html/_static/sidebar.js doc/html/_static/sphinx_highlight.js doc/html/_static/underscore-1.13.1.js doc/html/_static/underscore.js examples/hello.py examples/hello_asyncio.py examples/passthroughfs.py examples/tmpfs.py rst/about.rst rst/asyncio.rst rst/changes.rst rst/conf.py rst/data.rst rst/example.rst rst/fuse_api.rst rst/general.rst rst/gotchas.rst rst/index.rst rst/install.rst rst/operations.rst rst/util.rst rst/_static/.placeholder rst/_templates/localtoc.html src/_pyfuse3.py src/darwin_compat.c src/darwin_compat.h src/gettime.h src/handlers.pxi src/internal.pxi src/macros.c src/macros.pxd src/pyfuse3.c src/pyfuse3.h src/pyfuse3.pyi src/pyfuse3.pyx src/pyfuse3_asyncio.py src/xattr.h src/pyfuse3.egg-info/PKG-INFO src/pyfuse3.egg-info/SOURCES.txt src/pyfuse3.egg-info/dependency_links.txt src/pyfuse3.egg-info/requires.txt src/pyfuse3.egg-info/top_level.txt src/pyfuse3.egg-info/zip-safe test/conftest.py test/pytest.ini test/pytest_checklogs.py test/test_api.py test/test_examples.py test/test_fs.py test/test_rounding.py test/util.py util/sdist-sign util/sphinx_cython.py util/upload-pypi././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344718.0 pyfuse3-3.3.0/src/pyfuse3.egg-info/dependency_links.txt0000664000175000017500000000000114463757516020772 0ustar00twtw ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344718.0 pyfuse3-3.3.0/src/pyfuse3.egg-info/requires.txt0000664000175000017500000000001314463757516017316 0ustar00twtwtrio>=0.15 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344718.0 pyfuse3-3.3.0/src/pyfuse3.egg-info/top_level.txt0000664000175000017500000000004114463757516017451 0ustar00twtw_pyfuse3 pyfuse3 pyfuse3_asyncio ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1691344157.0 pyfuse3-3.3.0/src/pyfuse3.egg-info/zip-safe0000664000175000017500000000000114463756435016353 0ustar00twtw ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/pyfuse3.h0000664000175000017500000000146514461445163013377 0ustar00twtw/* pyfuse3.h Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. */ #define PLATFORM_LINUX 1 #define PLATFORM_BSD 2 #define PLATFORM_DARWIN 3 #ifdef __linux__ #define PLATFORM PLATFORM_LINUX #elif __FreeBSD_kernel__&&__GLIBC__ #define PLATFORM PLATFORM_LINUX #elif __FreeBSD__ #define PLATFORM PLATFORM_BSD #elif __NetBSD__ #define PLATFORM PLATFORM_BSD #elif __APPLE__ && __MACH__ #define PLATFORM PLATFORM_DARWIN #else #error "Unable to determine system (Linux/FreeBSD/NetBSD/Darwin)" #endif #if PLATFORM == PLATFORM_DARWIN #include "darwin_compat.h" #else /* See also: Include/pthreads.pxd */ #include #endif #include #if FUSE_VERSION < 32 #error FUSE version too old, 3.2.0 or newer required #endif ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/pyfuse3.pyi0000664000175000017500000000562314461445163013751 0ustar00twtw''' pyfuse3.pyi Type annotation stubs for the external API in pyfuse3.pyx. Copyright © 2021 Oliver Galvin This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from _pyfuse3 import Operations, async_wrapper, FileHandleT, FileNameT, FlagT, InodeT, ModeT from typing import List, Literal, Mapping NamespaceT = Literal["system", "user"] StatDict = Mapping[str, int] default_options: frozenset[str] class ReaddirToken: pass class RequestContext: uid: int pid: int gid: int umask: int def __getstate__(self) -> None: ... class SetattrFields: update_atime: bool update_mtime: bool update_ctime: bool update_mode: bool update_uid: bool update_gid: bool update_size: bool def __cinit__(self) -> None: ... def __getstate__(self) -> None: ... class EntryAttributes: st_ino: InodeT generation: int entry_timeout: int attr_timeout: int st_mode: ModeT st_nlink: int st_uid: int st_gid: int st_rdev: int st_size: int st_blksize: int st_blocks: int st_atime_ns: int st_ctime_ns: int st_mtime_ns: int st_birthtime_ns: int def __cinit__(self) -> None: ... def __getstate__(self) -> StatDict: ... def __setstate__(self, state: StatDict) -> None: ... class FileInfo: fh: FileHandleT direct_io: bool keep_cache: bool nonseekable: bool def __cinit__(self, fh: FileHandleT, direct_io: bool, keep_cache: bool, nonseekable: bool) -> None: ... # def _copy_to_fuse(self, fuse_file_info *out) -> None: ... class StatvfsData: f_bsize: int f_frsize: int f_blocks: int f_bfree: int f_bavail: int f_files: int f_ffree: int f_favail: int f_namemax: int def __cinit__(self) -> None: ... def __getstate__(self) -> StatDict: ... def __setstate__(self, state: StatDict) -> None: ... class FUSEError(Exception): errno: int def __cinit__(self, errno: int) -> None: ... def __str__(self) -> str: ... def listdir(path: str) -> List[str]: ... def syncfs(path: str) -> str: ... def setxattr(path: str, name: str, value: bytes, namespace: NamespaceT) -> None: ... def getxattr(path: str, name: str, size_guess: int, namespace: NamespaceT) -> bytes: ... def init(ops: Operations, mountpoint: str, options: set[str]) -> None: ... def main(min_tasks: int, max_tasks: int) -> None: ... def terminate() -> None: ... def close(unmount: bool) -> None: ... def invalidate_inode(inode: InodeT, attr_only: bool) -> None: ... def invalidate_entry(inode_p: InodeT, name: bytes, deleted: InodeT) -> None: ... def invalidate_entry_async(inode_p: InodeT, name: bytes, deleted: InodeT, ignore_enoent: bool) -> None: ... def notify_store(inode: InodeT, offset: int, data: bytes) -> None: ... def get_sup_groups(pid: int) -> set[int]: ... def readdir_reply(token: ReaddirToken, name: bytes, attr: EntryAttributes, next_id: int) -> bool: ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/pyfuse3.pyx0000664000175000017500000007710314461445163013772 0ustar00twtw''' pyfuse3.pyx Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' cdef extern from "pyfuse3.h": int PLATFORM enum: PLATFORM_LINUX PLATFORM_BSD PLATFORM_DARWIN ########### # C IMPORTS ########### from fuse_lowlevel cimport * from macros cimport * from posix.stat cimport struct_stat, S_IFMT, S_IFDIR, S_IFREG from posix.types cimport mode_t, dev_t, off_t from libc.stdint cimport uint32_t from libc.stdlib cimport const_char from libc cimport stdlib, string, errno from posix cimport unistd from libc.errno cimport EACCES, ETIMEDOUT, EPROTO, EINVAL, ENOMSG, ENOATTR from posix.unistd cimport getpid from posix.time cimport timespec from cpython.bytes cimport (PyBytes_AsStringAndSize, PyBytes_FromStringAndSize, PyBytes_AsString, PyBytes_FromString, PyBytes_AS_STRING) from cpython.buffer cimport (PyObject_GetBuffer, PyBuffer_Release, PyBUF_CONTIG_RO, PyBUF_CONTIG) cimport cpython.exc cimport cython cimport libc_extra ######################## # EXTERNAL DEFINITIONS # ######################## cdef extern from "" nogil: enum: RENAME_EXCHANGE RENAME_NOREPLACE cdef extern from "Python.h" nogil: int PY_SSIZE_T_MAX # Actually passed as -D to cc (and defined in setup.py) cdef extern from *: char* PYFUSE3_VERSION ################ # PYTHON IMPORTS ################ from pickle import PicklingError from queue import Queue import logging import os import os.path import sys import trio import threading import typing import _pyfuse3 _pyfuse3.FUSEError = FUSEError from _pyfuse3 import Operations, async_wrapper if typing.TYPE_CHECKING: from _pyfuse3 import FileHandleT, FileNameT, FlagT, InodeT, ModeT ################## # GLOBAL VARIABLES ################## log = logging.getLogger("pyfuse3") fse = sys.getfilesystemencoding() cdef object operations cdef object mountpoint_b cdef fuse_session* session = NULL cdef fuse_lowlevel_ops fuse_ops cdef int session_fd cdef object py_retval cdef object _notify_queue = None ROOT_INODE = FUSE_ROOT_ID __version__ = PYFUSE3_VERSION.decode('utf-8') _NANOS_PER_SEC = 1000000000 # In the Cython source, we want the names to refer to the # C constants. Therefore, we assign through globals(). g = globals() g['ENOATTR'] = ENOATTR g['RENAME_EXCHANGE'] = RENAME_EXCHANGE g['RENAME_NOREPLACE'] = RENAME_NOREPLACE trio_token = None ####################### # FUSE REQUEST HANDLERS ####################### include "handlers.pxi" ######################################## # INTERNAL FUNCTIONS & DATA STRUCTURES # ######################################## include "internal.pxi" ###################### # EXTERNAL API # ###################### @cython.freelist(10) cdef class RequestContext: ''' Instances of this class are passed to some `Operations` methods to provide information about the caller of the syscall that initiated the request. ''' cdef readonly uid_t uid cdef readonly pid_t pid cdef readonly gid_t gid cdef readonly mode_t umask def __getstate__(self): raise PicklingError("RequestContext instances can't be pickled") @cython.freelist(10) cdef class SetattrFields: ''' `SetattrFields` instances are passed to the `~Operations.setattr` handler to specify which attributes should be updated. ''' cdef readonly object update_atime cdef readonly object update_mtime cdef readonly object update_ctime cdef readonly object update_mode cdef readonly object update_uid cdef readonly object update_gid cdef readonly object update_size def __cinit__(self): self.update_atime = False self.update_mtime = False self.update_ctime = False self.update_mode = False self.update_uid = False self.update_gid = False self.update_size = False def __getstate__(self): raise PicklingError("SetattrFields instances can't be pickled") @cython.freelist(30) cdef class EntryAttributes: ''' Instances of this class store attributes of directory entries. Most of the attributes correspond to the elements of the ``stat`` C struct as returned by e.g. ``fstat`` and should be self-explanatory. ''' # Attributes are documented in rst/data.rst cdef fuse_entry_param fuse_param cdef struct_stat *attr def __cinit__(self): string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) self.attr = &self.fuse_param.attr self.fuse_param.generation = 0 self.fuse_param.entry_timeout = 300 self.fuse_param.attr_timeout = 300 self.attr.st_mode = S_IFREG self.attr.st_blksize = 4096 self.attr.st_nlink = 1 @property def st_ino(self): return self.fuse_param.ino @st_ino.setter def st_ino(self, val): self.fuse_param.ino = val self.attr.st_ino = val @property def generation(self): '''The inode generation number''' return self.fuse_param.generation @generation.setter def generation(self, val): self.fuse_param.generation = val @property def attr_timeout(self): '''Validity timeout for the attributes of the directory entry Floating point numbers may be used. Units are seconds. ''' return self.fuse_param.attr_timeout @attr_timeout.setter def attr_timeout(self, val): self.fuse_param.attr_timeout = val @property def entry_timeout(self): '''Validity timeout for the name/existence of the directory entry Floating point numbers may be used. Units are seconds. ''' return self.fuse_param.entry_timeout @entry_timeout.setter def entry_timeout(self, val): self.fuse_param.entry_timeout = val @property def st_mode(self): return self.attr.st_mode @st_mode.setter def st_mode(self, val): self.attr.st_mode = val @property def st_nlink(self): return self.attr.st_nlink @st_nlink.setter def st_nlink(self, val): self.attr.st_nlink = val @property def st_uid(self): return self.attr.st_uid @st_uid.setter def st_uid(self, val): self.attr.st_uid = val @property def st_gid(self): return self.attr.st_gid @st_gid.setter def st_gid(self, val): self.attr.st_gid = val @property def st_rdev(self): return self.attr.st_rdev @st_rdev.setter def st_rdev(self, val): self.attr.st_rdev = val @property def st_size(self): return self.attr.st_size @st_size.setter def st_size(self, val): self.attr.st_size = val @property def st_blocks(self): return self.attr.st_blocks @st_blocks.setter def st_blocks(self, val): self.attr.st_blocks = val @property def st_blksize(self): return self.attr.st_blksize @st_blksize.setter def st_blksize(self, val): self.attr.st_blksize = val @property def st_atime_ns(self): '''Time of last access in (integer) nanoseconds''' return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) @st_atime_ns.setter def st_atime_ns(self, val): self.attr.st_atime = val // _NANOS_PER_SEC SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) @property def st_mtime_ns(self): '''Time of last modification in (integer) nanoseconds''' return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) @st_mtime_ns.setter def st_mtime_ns(self, val): self.attr.st_mtime = val // _NANOS_PER_SEC SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) @property def st_ctime_ns(self): '''Time of last inode modification in (integer) nanoseconds''' return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) @st_ctime_ns.setter def st_ctime_ns(self, val): self.attr.st_ctime = val // _NANOS_PER_SEC SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) @property def st_birthtime_ns(self): '''Time of inode creation in (integer) nanoseconds. Only available under BSD and OS X. Will be zero on Linux. ''' # Use C macro to prevent compiler error on Linux # (where st_birthtime does not exist) return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC + GET_BIRTHTIME_NS(self.attr)) @st_birthtime_ns.setter def st_birthtime_ns(self, val): # Use C macro to prevent compiler error on Linux # (where st_birthtime does not exist) SET_BIRTHTIME(self.attr, val // _NANOS_PER_SEC) SET_BIRTHTIME_NS(self.attr, val % _NANOS_PER_SEC) # Pickling and copy support def __getstate__(self): state = dict() for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', 'st_ctime_ns', 'st_mtime_ns', 'st_birthtime_ns'): state[k] = getattr(self, k) return state def __setstate__(self, state): for (k,v) in state.items(): setattr(self, k, v) @cython.freelist(10) cdef class FileInfo: ''' Instances of this class store options and data that `Operations.open` returns. The attributes correspond to the elements of the ``fuse_file_info`` struct that are relevant to the `Operations.open` function. ''' cdef public uint64_t fh cdef public bint direct_io cdef public bint keep_cache cdef public bint nonseekable def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): self.fh = fh self.direct_io = direct_io self.keep_cache = keep_cache self.nonseekable = nonseekable cdef _copy_to_fuse(self, fuse_file_info *out): out.fh = self.fh # Due to how Cython generates its C code, GCC will complain about # assigning to the bitfields in the fuse_file_info struct. # This is the workaround. if self.direct_io: out.direct_io = 1 else: out.direct_io = 0 if self.keep_cache: out.keep_cache = 1 else: out.keep_cache = 0 if self.nonseekable: out.nonseekable = 1 else: out.nonseekable = 0 @cython.freelist(1) cdef class StatvfsData: ''' Instances of this class store information about the file system. The attributes correspond to the elements of the ``statvfs`` struct, see :manpage:`statvfs(2)` for details. ''' cdef statvfs stat def __cinit__(self): string.memset(&self.stat, 0, sizeof(statvfs)) @property def f_bsize(self): return self.stat.f_bsize @f_bsize.setter def f_bsize(self, val): self.stat.f_bsize = val @property def f_frsize(self): return self.stat.f_frsize @f_frsize.setter def f_frsize(self, val): self.stat.f_frsize = val @property def f_blocks(self): return self.stat.f_blocks @f_blocks.setter def f_blocks(self, val): self.stat.f_blocks = val @property def f_bfree(self): return self.stat.f_bfree @f_bfree.setter def f_bfree(self, val): self.stat.f_bfree = val @property def f_bavail(self): return self.stat.f_bavail @f_bavail.setter def f_bavail(self, val): self.stat.f_bavail = val @property def f_files(self): return self.stat.f_files @f_files.setter def f_files(self, val): self.stat.f_files = val @property def f_ffree(self): return self.stat.f_ffree @f_ffree.setter def f_ffree(self, val): self.stat.f_ffree = val @property def f_favail(self): return self.stat.f_favail @f_favail.setter def f_favail(self, val): self.stat.f_favail = val @property def f_namemax(self): return self.stat.f_namemax @f_namemax.setter def f_namemax(self, val): self.stat.f_namemax = val # Pickling and copy support def __getstate__(self): state = dict() for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail', 'f_namemax'): state[k] = getattr(self, k) return state def __setstate__(self, state): for (k,v) in state.items(): setattr(self, k, v) # As of Cython 0.28.1, @cython.freelist cannot be used for # classes that derive from a builtin type. cdef class FUSEError(Exception): ''' This exception may be raised by request handlers to indicate that the requested operation could not be carried out. The system call that resulted in the request (if any) will then fail with error code *errno_*. ''' # If we call this variable "errno", we will get syntax errors # during C compilation (maybe something else declares errno as # a macro?) cdef readonly int errno_ @property def errno(self): '''Error code to return to client process''' return self.errno_ def __cinit__(self, errno): self.errno_ = errno def __str__(self): return strerror(self.errno_) def listdir(path): '''Like `os.listdir`, but releases the GIL. This function returns an iterator over the directory entries in *path*. The returned values are of type :ref:`str `. Surrogate escape coding (cf. `PEP 383 `_) is used for directory names that do not have a string representation. ''' if not isinstance(path, str): raise TypeError('*path* argument must be of type str') cdef libc_extra.DIR* dirp cdef libc_extra.dirent* res cdef char* buf path_b = str2bytes(path) buf = path_b with nogil: dirp = libc_extra.opendir(buf) if dirp == NULL: raise OSError(errno.errno, strerror(errno.errno), path) names = list() while True: errno.errno = 0 with nogil: res = libc_extra.readdir(dirp) if res is NULL: if errno.errno != 0: raise OSError(errno.errno, strerror(errno.errno), path) else: break if string.strcmp(res.d_name, b'.') == 0 or \ string.strcmp(res.d_name, b'..') == 0: continue names.append(bytes2str(PyBytes_FromString(res.d_name))) with nogil: libc_extra.closedir(dirp) return names def syncfs(path): '''Sync filesystem mounted at *path* This is a Python interface to the syncfs(2) system call. There is no particular relation to libfuse, it is provided by pyfuse3 as a convience. ''' cdef int ret fd = os.open(path, flags=os.O_DIRECTORY) try: ret = libc_extra.syncfs(fd) if ret != 0: raise OSError(errno.errno, strerror(errno.errno), path) finally: os.close(fd) def setxattr(path, name, bytes value, namespace='user'): '''Set extended attribute *path* and *name* have to be of type `str`. In Python 3.x, they may contain surrogates. *value* has to be of type `bytes`. Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to select the namespace for the extended attribute. For other platforms, this parameter is ignored. In contrast to the `os.setxattr` function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems. ''' if not isinstance(path, str): raise TypeError('*path* argument must be of type str') if not isinstance(name, str): raise TypeError('*name* argument must be of type str') if namespace not in ('system', 'user'): raise ValueError('*namespace* parameter must be "system" or "user", not %s' % namespace) cdef int ret cdef Py_ssize_t len_ cdef char *cvalue cdef char *cpath cdef char *cname cdef int cnamespace if namespace == 'system': cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM else: cnamespace = libc_extra.EXTATTR_NAMESPACE_USER path_b = str2bytes(path) name_b = str2bytes(name) PyBytes_AsStringAndSize(value, &cvalue, &len_) cpath = path_b cname = name_b with nogil: # len_ is guaranteed positive ret = libc_extra.setxattr_p( cpath, cname, cvalue, len_, cnamespace) if ret != 0: raise OSError(errno.errno, strerror(errno.errno), path) def getxattr(path, name, size_t size_guess=128, namespace='user'): '''Get extended attribute *path* and *name* have to be of type `str`. In Python 3.x, they may contain surrogates. Returns a value of type `bytes`. If the caller knows the approximate size of the attribute value, it should be supplied in *size_guess*. If the guess turns out to be wrong, the system call has to be carried out three times (the first call will fail, the second determines the size and the third finally gets the value). Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to select the namespace for the extended attribute. For other platforms, this parameter is ignored. In contrast to the `os.getxattr` function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems. ''' if not isinstance(path, str): raise TypeError('*path* argument must be of type str') if not isinstance(name, str): raise TypeError('*name* argument must be of type str') if namespace not in ('system', 'user'): raise ValueError('*namespace* parameter must be "system" or "user", not %s' % namespace) cdef ssize_t ret cdef char *buf cdef char *cpath cdef char *cname cdef size_t bufsize cdef int cnamespace if namespace == 'system': cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM else: cnamespace = libc_extra.EXTATTR_NAMESPACE_USER path_b = str2bytes(path) name_b = str2bytes(name) cpath = path_b cname = name_b bufsize = size_guess buf = stdlib.malloc(bufsize * sizeof(char)) if buf is NULL: cpython.exc.PyErr_NoMemory() try: with nogil: ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) if ret < 0 and errno.errno == errno.ERANGE: with nogil: ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) if ret < 0: raise OSError(errno.errno, strerror(errno.errno), path) bufsize = ret stdlib.free(buf) buf = stdlib.malloc(bufsize * sizeof(char)) if buf is NULL: cpython.exc.PyErr_NoMemory() with nogil: ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) if ret < 0: raise OSError(errno.errno, strerror(errno.errno), path) return PyBytes_FromStringAndSize(buf, ret) finally: stdlib.free(buf) default_options = frozenset(('default_permissions',)) def init(ops, mountpoint, options=default_options): '''Initialize and mount FUSE file system *ops* has to be an instance of the `Operations` class (or another class defining the same methods). *args* has to be a set of strings. `default_options` provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example:: my_opts = set(pyfuse3.default_options) my_opts.add('allow_other') my_opts.discard('default_permissions') pyfuse3.init(ops, mountpoint, my_opts) Valid options are listed under ``struct fuse_opt fuse_mount_opts[]`` (in `mount.c `_) and ``struct fuse_opt fuse_ll_opts[]`` (in `fuse_lowlevel_c `_). ''' log.debug('Initializing pyfuse3') cdef fuse_args f_args cdef int res if not isinstance(mountpoint, str): raise TypeError('*mountpoint_* argument must be of type str') global operations global fuse_ops global mountpoint_b global session global session_fd global worker_data worker_data = _WorkerData() mountpoint_b = str2bytes(os.path.abspath(mountpoint)) operations = ops make_fuse_args(options, &f_args) log.debug('Calling fuse_session_new') init_fuse_ops() session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) if not session: raise RuntimeError("fuse_session_new() failed") log.debug('Calling fuse_session_mount') res = fuse_session_mount(session, mountpoint_b) if res != 0: raise RuntimeError('fuse_session_mount failed') session_fd = fuse_session_fd(session) @async_wrapper async def main(int min_tasks=1, int max_tasks=99): '''Run FUSE main loop''' if session == NULL: raise RuntimeError('Need to call init() before main()') global trio_token trio_token = trio.lowlevel.current_trio_token() try: async with trio.open_nursery() as nursery: worker_data.task_count = 1 worker_data.task_serial = 1 nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, name=worker_data.get_name()) finally: trio_token = None if _notify_queue is not None: _notify_queue.put(None) def terminate(): '''Terminate FUSE main loop. This function gracefully terminates the FUSE main loop (resulting in the call to main() to return). When called by a thread different from the one that runs the main loop, the call must be wrapped with `trio.from_thread.run_sync`. The necessary *trio_token* argument can (for convience) be retrieved from the `trio_token` module attribute. ''' fuse_session_exit(session) trio.lowlevel.notify_closing(session_fd) def close(unmount=True): '''Clean up and ensure filesystem is unmounted If *unmount* is False, only clean up operations are peformed, but the file system is not explicitly unmounted. Normally, the filesystem is unmounted by the user calling umount(8) or fusermount(1), which then terminates the FUSE main loop. However, the loop may also terminate as a result of an exception or a signal. In this case the filesystem remains mounted, but any attempt to access it will block (while the filesystem process is still running) or (after the filesystem process has terminated) return an error. If *unmount* is True, this function will ensure that the filesystem is properly unmounted. Note: if the connection to the kernel is terminated via the ``/sys/fs/fuse/connections/`` interface, this function will *not* unmount the filesystem even if *unmount* is True. ''' global mountpoint_b global session if unmount: log.debug('Calling fuse_session_unmount') fuse_session_unmount(session) log.debug('Calling fuse_session_destroy') fuse_session_destroy(session) mountpoint_b = None session = NULL def invalidate_inode(fuse_ino_t inode, attr_only=False): '''Invalidate cache for *inode* Instructs the FUSE kernel module to forget cached attributes and data (unless *attr_only* is True) for *inode*. **This operation may block** if writeback caching is active and there is dirty data for the inode that is to be invalidated. Unfortunately there is no way to return control to the event loop until writeback is complete (leading to a deadlock if the necessary write() requests cannot be processed by the filesystem). Unless writeback caching is disabled, this function should therefore be called from a separate thread. If the operation is not supported by the kernel, raises `OSError` with errno ENOSYS. ''' cdef int ret if attr_only: with nogil: ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) else: with nogil: ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): '''Invalidate directory entry Instructs the FUSE kernel module to forget about the directory entry *name* in the directory with inode *inode_p*. If the inode passed as *deleted* matches the inode that is currently associated with *name* by the kernel, any inotify watchers of this inode are informed that the entry has been deleted. If there is a pending filesystem operation that is related to the parent directory or directory entry, this function will block until that operation has completed. Therefore, to avoid a deadlock this function must not be called while handling a related request, nor while holding a lock that could be needed for handling such a request. As for kernel 4.18, a "related operation" is a `~Operations.lookup`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.mkdir`, `~Operations.unlink`, `~Operations.rename`, `~Operations.link` or `~Operations.create` request for the parent, and a `~Operations.setattr`, `~Operations.unlink`, `~Operations.rmdir`, `~Operations.rename`, `~Operations.setxattr`, `~Operations.removexattr` or `~Operations.readdir` request for the inode itself. For technical reasons, this function can also not return control to the main event loop but will actually block. To return control to the event loop while this function is running, call it in a separate thread using `trio.run_sync_in_worker_thread `_. A less complicated alternative is to use the `invalidate_entry_async` function instead. ''' cdef char *cname cdef ssize_t slen cdef size_t len_ cdef int ret PyBytes_AsStringAndSize(name, &cname, &slen) # len_ is guaranteed positive len_ = slen if deleted: with nogil: # might block! ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' + strerror(-ret)) else: with nogil: # might block! ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' + strerror(-ret)) def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): '''Asynchronously invalidate directory entry This function performs the same operation as `invalidate_entry`, but does so asynchronously in a separate thread. This avoids the deadlocks that may occur when using `invalidate_entry` from within a request handler, but means that the function generally returns before the kernel has actually invalidated the entry, and that no errors can be reported (they will be logged though). The directory entries that are to be invalidated are put in an unbounded queue which is processed by a single thread. This means that if the entry at the beginning of the queue cannot be invalidated yet because a related file system operation is still in progress, none of the other entries will be processed and repeated calls to this function will result in continued growth of the queue. If there are errors, an exception is logged using the `logging` module. If *ignore_enoent* is True, ignore ENOENT errors (which occur if the kernel doesn't actually have knowledge of the entry that is to be removed). ''' global _notify_queue if _notify_queue is None: log.debug('Starting notify worker.') _notify_queue = Queue() t = threading.Thread(target=_notify_loop) t.daemon = True t.start() _notify_queue.put((inode_p, name, deleted, ignore_enoent)) def notify_store(inode, offset, data): '''Store data in kernel page cache Sends *data* for the kernel to store it in the page cache for *inode* at *offset*. If this provides data beyond the current file size, the file is automatically extended. If this function raises an exception, the store may still have completed partially. If the operation is not supported by the kernel, raises `OSError` with errno ENOSYS. ''' # This should not block, but the kernel may need to do some work so release # the GIL to give other threads a chance to run. cdef int ret cdef fuse_ino_t ino cdef off_t off cdef Py_buffer pybuf cdef fuse_bufvec bufvec cdef fuse_buf *buf PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) bufvec.count = 1 bufvec.idx = 0 bufvec.off = 0 buf = bufvec.buf buf[0].flags = 0 buf[0].mem = pybuf.buf buf[0].size = pybuf.len # guaranteed positive ino = inode off = offset with nogil: ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) PyBuffer_Release(&pybuf) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) def get_sup_groups(pid): '''Return supplementary group ids of *pid* This function is relatively expensive because it has to read the group ids from ``/proc/[pid]/status``. For the same reason, it will also not work on systems that do not provide a ``/proc`` file system. Returns a set. ''' with open('/proc/%d/status' % pid, 'r') as fh: for line in fh: if line.startswith('Groups:'): break else: raise RuntimeError("Unable to parse %s" % fh.name) gids = set() for x in line.split()[1:]: gids.add(int(x)) return gids def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): '''Report a directory entry in response to a `~Operations.readdir` request. This function should be called by the `~Operations.readdir` handler to provide the list of directory entries. The function should be called once for each directory entry, until it returns False. *token* must be the token received by the `~Operations.readdir` handler. *name* and must be the name of the directory entry and *attr* an `EntryAttributes` instance holding its attributes. *next_id* must be a 64-bit integer value that uniquely identifies the current position in the list of directory entries. It may be passed back to a later `~Operations.readdir` call to start another listing at the right position. This value should be robust in the presence of file removals and creations, i.e. if files are created or removed after a call to `~Operations.readdir` and `~Operations.readdir` is called again with *start_id* set to any previously supplied *next_id* values, under no circumstances must any file be reported twice or skipped over. ''' cdef char *cname if token.buf_start == NULL: token.buf_start = calloc_or_raise(token.size, sizeof(char)) token.buf = token.buf_start cname = PyBytes_AsString(name) len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, cname, &attr.fuse_param, next_id) if len_ > token.size: return False token.size -= len_ token.buf = &token.buf[len_] return True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/pyfuse3_asyncio.py0000664000175000017500000000566514461445163015333 0ustar00twtw''' pyfuse3_asyncio.py asyncio compatibility layer for pyfuse3 Copyright © 2018 Nikolaus Rath Copyright © 2018 JustAnotherArchivist This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import asyncio import collections import sys from typing import Any, Callable, Iterable, Optional, Type import pyfuse3 from _pyfuse3 import FileHandleT Lock = asyncio.Lock def enable() -> None: '''Switch pyfuse3 to asyncio mode.''' fake_trio = sys.modules['pyfuse3_asyncio'] fake_trio.lowlevel = fake_trio # type: ignore fake_trio.from_thread = fake_trio # type: ignore pyfuse3.trio = fake_trio # type: ignore def disable() -> None: '''Switch pyfuse3 to default (trio) mode.''' pyfuse3.trio = sys.modules['trio'] # type: ignore def current_trio_token() -> str: return 'asyncio' _read_futures = collections.defaultdict(set) async def wait_readable(fd: FileHandleT) -> None: future: asyncio.Future = asyncio.Future() _read_futures[fd].add(future) try: loop = asyncio.get_event_loop() loop.add_reader(fd, future.set_result, None) future.add_done_callback(lambda f: loop.remove_reader(fd)) await future finally: _read_futures[fd].remove(future) if not _read_futures[fd]: del _read_futures[fd] def notify_closing(fd: FileHandleT) -> None: for f in _read_futures[fd]: f.set_exception(ClosedResourceError()) class ClosedResourceError(Exception): pass def current_task() -> Optional[asyncio.Task]: if sys.version_info < (3, 7): return asyncio.Task.current_task() else: return asyncio.current_task() class _Nursery: async def __aenter__(self) -> "_Nursery": self.tasks: set[asyncio.Task] = set() return self def start_soon( self, func: Callable, *args: Iterable[Any], name: Optional[str] = None ) -> None: if sys.version_info < (3, 7): task = asyncio.ensure_future(func(*args)) else: task = asyncio.create_task(func(*args)) task.name = name # type: ignore self.tasks.add(task) async def __aexit__( self, exc_type: Optional[Type], exc_value: Optional[BaseException], traceback: Optional[Any] ) -> None: # Wait for tasks to finish while len(self.tasks): # Create a copy of the task list to ensure that it's not a problem # when self.tasks is modified done, pending = await asyncio.wait(tuple(self.tasks)) for task in done: self.tasks.discard(task) # We waited for ALL_COMPLETED (default value of 'when' arg to # asyncio.wait), so all tasks should be completed. If that's not the # case, something's seriously wrong. assert len(pending) == 0 def open_nursery() -> _Nursery: return _Nursery() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/src/xattr.h0000664000175000017500000000664614461445163013151 0ustar00twtw/* * xattr.h * * Platform-independent interface to extended attributes * * Copyright © 2015 Nikolaus Rath * * This file is part of pyfuse3. This work may be distributed under the * terms of the GNU LGPL. */ #ifndef UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define UNUSED __attribute__ ((__unused__)) # else # define UNUSED # endif # else # define UNUSED # endif #endif /* * Linux */ #if PLATFORM == PLATFORM_LINUX #include /* * Newer versions of attr deprecate attr/xattr.h which defines ENOATTR as a * synonym for ENODATA. To keep compatibility with the old style and the new, * define this ourselves. */ #ifndef ENOATTR #define ENOATTR ENODATA #endif #define EXTATTR_NAMESPACE_USER 0 #define EXTATTR_NAMESPACE_SYSTEM 0 #define XATTR_NOFOLLOW 0 #define XATTR_NODEFAULT 0 #define XATTR_NOSECURITY 0 static ssize_t getxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return getxattr(path, name, value, size); } static int setxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return setxattr(path, name, value, size, 0); } /* * FreeBSD & NetBSD */ #elif PLATFORM == PLATFORM_BSD #include #include #include #include #define XATTR_NOFOLLOW 0 #define XATTR_NODEFAULT 0 #define XATTR_NOSECURITY 0 /* FreeBSD doesn't have on operation to only set the attribute if it already exists (XATTR_REPLACE), or only if it does not yet exist (XATTR_CREATE). Setting these values to zero ensures that we can never test positively for them */ #define XATTR_CREATE 0 #define XATTR_REPLACE 0 static ssize_t getxattr_p (char *path, char *name, void *value, size_t size, int namespace) { /* If size > SSIZE_MAX, we cannot determine if we got all the data (because the return value doesn't fit into ssize_t) */ if (size >= SSIZE_MAX) { errno = EINVAL; return -1; } ssize_t ret; ret = extattr_get_file(path, namespace, name, value, size); if (ret > 0 && (size_t) ret == size) { errno = ERANGE; return -1; } return ret; } static int setxattr_p (char *path, char *name, void *value, size_t size, int namespace) { if (size >= SSIZE_MAX) { errno = EINVAL; return -1; } ssize_t ret; ret = extattr_set_file(path, namespace, name, value, size); if (ret < 0) { /* Errno values really ought to fit into int, but better safe than sorry */ if (ret < INT_MIN) return -EOVERFLOW; else return (int) ret; } if ((size_t)ret != size) { errno = ENOSPC; return -1; } return 0; } /* * Darwin */ #elif PLATFORM == PLATFORM_DARWIN #include #define EXTATTR_NAMESPACE_USER 0 #define EXTATTR_NAMESPACE_SYSTEM 0 static ssize_t getxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return getxattr(path, name, value, size, 0, 0); } static int setxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return setxattr(path, name, value, size, 0, 0); } /* * Unknown system */ #else #error This should not happen #endif ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5559611 pyfuse3-3.3.0/test/0000775000175000017500000000000014463757517012025 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/conftest.py0000664000175000017500000000712114461445163014212 0ustar00twtwimport sys import os.path import logging import pytest import time import gc # Enable output checks pytest_plugins = ('pytest_checklogs') # Register false positives @pytest.fixture(autouse=True) def register_false_checklog_pos(reg_output): # DeprecationWarnings are unfortunately quite often a result of indirect # imports via third party modules, so we can't actually fix them. reg_output(r'(Pending)?DeprecationWarning', count=0) # Valgrind output reg_output(r'^==\d+== Memcheck, a memory error detector$') reg_output(r'^==\d+== For counts of detected and suppressed errors, rerun with: -v') reg_output(r'^==\d+== ERROR SUMMARY: 0 errors from 0 contexts') def pytest_addoption(parser): group = parser.getgroup("general") group._addoption("--installed", action="store_true", default=False, help="Test the installed package.") group = parser.getgroup("terminal reporting") group._addoption("--logdebug", action="append", metavar='', help="Activate debugging output from for tests. Use `all` " "to get debug messages from all modules. This option can be " "specified multiple times.") # If a test fails, wait a moment before retrieving the captured # stdout/stderr. When using a server process, this makes sure that we capture # any potential output of the server that comes *after* a test has failed. For # example, if a request handler raises an exception, the server first signals an # error to FUSE (causing the test to fail), and then logs the exception. Without # the extra delay, the exception will go into nowhere. @pytest.hookimpl(hookwrapper=True) def pytest_pyfunc_call(pyfuncitem): outcome = yield failed = outcome.excinfo is not None if failed: time.sleep(1) def pytest_configure(config): # If we are running from the source directory, make sure that we load # modules from here basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) if not config.getoption('installed'): pyfuse3_path = os.path.join(basedir, 'src') if (os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists(os.path.join(basedir, 'src', 'pyfuse3.pyx'))): sys.path.insert(0, pyfuse3_path) # Make sure that called processes use the same path pp = os.environ.get('PYTHONPATH', None) if pp: pp = '%s:%s' % (pyfuse3_path, pp) else: pp = pyfuse3_path os.environ['PYTHONPATH'] = pp try: import faulthandler except ImportError: pass else: faulthandler.enable() # When running from VCS repo, enable all warnings if os.path.exists(os.path.join(basedir, 'MANIFEST.in')): import warnings warnings.resetwarnings() warnings.simplefilter('default') # Configure logging. We don't set a default handler but rely on # the catchlog pytest plugin. logdebug = config.getoption('logdebug') root_logger = logging.getLogger() if logdebug is not None: logging.disable(logging.NOTSET) if 'all' in logdebug: root_logger.setLevel(logging.DEBUG) else: for module in logdebug: logging.getLogger(module).setLevel(logging.DEBUG) else: root_logger.setLevel(logging.INFO) logging.disable(logging.DEBUG) logging.captureWarnings(capture=True) # Run gc.collect() at the end of every test, so that we get ResourceWarnings # as early as possible. def pytest_runtest_teardown(item, nextitem): gc.collect() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/pytest.ini0000664000175000017500000000012114461445163014035 0ustar00twtw[pytest] addopts = --verbose --assert=rewrite --tb=native -x markers = uses_fuse ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/pytest_checklogs.py0000664000175000017500000000745514461445163015751 0ustar00twtw#!/usr/bin/env python3 ''' pytest_checklogs.py - this file is part of S3QL. Copyright (C) 2008 Nikolaus Rath This work can be distributed under the terms of the GNU GPLv3. py.test plugin to look for suspicious phrases in messages emitted on stdout/stderr or via the logging module. False positives can be registered via a new `reg_output` fixture (for messages to stdout/stderr), and a `assert_logs` function (for logging messages). ''' import pytest import re import functools import sys import logging from contextlib import contextmanager class CountMessagesHandler(logging.Handler): def __init__(self, level=logging.NOTSET): super().__init__(level) self.count = 0 def emit(self, record): self.count += 1 @contextmanager def assert_logs(pattern, level=logging.WARNING, count=None): '''Assert that suite emits specified log message *pattern* is matched against the *unformatted* log message, i.e. before any arguments are merged. If *count* is not None, raise an exception unless exactly *count* matching messages are caught. Matched log records will also be flagged so that the caplog fixture does not generate exceptions for them (no matter their severity). ''' def filter(record): if (record.levelno == level and re.search(pattern, record.msg)): record.checklogs_ignore = True return True return False handler = CountMessagesHandler() handler.setLevel(level) handler.addFilter(filter) logger = logging.getLogger() logger.addHandler(handler) try: yield finally: logger.removeHandler(handler) if count is not None and handler.count != count: pytest.fail('Expected to catch %d %r messages, but got only %d' % (count, pattern, handler.count)) def check_test_output(capfd, item): (stdout, stderr) = capfd.readouterr() # Strip out false positives try: false_pos = item.checklogs_fp except AttributeError: false_pos = () for (pattern, flags, count) in false_pos: cp = re.compile(pattern, flags) (stdout, cnt) = cp.subn('', stdout, count=count) if count == 0 or count - cnt > 0: stderr = cp.sub('', stderr, count=count - cnt) for pattern in ('exception', 'error', 'warning', 'fatal', 'traceback', 'fault', 'crash(?:ed)?', 'abort(?:ed)', 'fishy'): cp = re.compile(r'\b{}\b'.format(pattern), re.IGNORECASE | re.MULTILINE) hit = cp.search(stderr) if hit: pytest.fail('Suspicious output to stderr (matched "%s")' % hit.group(0)) hit = cp.search(stdout) if hit: pytest.fail('Suspicious output to stdout (matched "%s")' % hit.group(0)) def register_output(item, pattern, count=1, flags=re.MULTILINE): '''Register *pattern* as false positive for output checking This prevents the test from failing because the output otherwise appears suspicious. ''' item.checklogs_fp.append((pattern, flags, count)) @pytest.fixture() def reg_output(request): assert not hasattr(request.node, 'checklogs_fp') request.node.checklogs_fp = [] return functools.partial(register_output, request.node) # Autouse fixtures are instantiated before explicitly used fixtures, this should also # catch log messages emitted when e.g. initializing resources in other fixtures. @pytest.fixture(autouse=True) def check_output(caplog, capfd, request): yield for when in ("setup", "call", "teardown"): for record in caplog.get_records(when): if (record.levelno >= logging.WARNING and not getattr(record, 'checklogs_ignore', False)): pytest.fail('Logger received warning messages.') check_test_output(capfd, request.node) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/test_api.py0000775000175000017500000000530114461445163014176 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_api.py - Unit tests for pyfuse3. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' if __name__ == '__main__': import pytest import sys sys.exit(pytest.main([__file__] + sys.argv[1:])) import pyfuse3 import tempfile import os import errno import pytest from copy import copy from pickle import PicklingError def test_listdir(): # There is a race-condition here if /usr/bin is modified while the test # runs - but hopefully this is sufficiently rare. list1 = set(os.listdir('/usr/bin')) list2 = set(pyfuse3.listdir('/usr/bin')) assert list1 == list2 def test_sup_groups(): gids = pyfuse3.get_sup_groups(os.getpid()) gids2 = set(os.getgroups()) assert gids == gids2 def test_syncfs(): pyfuse3.syncfs('.') def _getxattr_helper(path, name): try: value = pyfuse3.getxattr(path, name) except OSError as exc: errno = exc.errno value = None if not hasattr(os, 'getxattr'): return value try: value2 = os.getxattr(path, name) except OSError as exc: assert exc.errno == errno else: assert value2 is not None assert value2 == value return value def test_entry_res(): a = pyfuse3.EntryAttributes() val = 1000.2735 a.st_atime_ns = val*1e9 assert a.st_atime_ns / 1e9 == val def test_xattr(): with tempfile.NamedTemporaryFile() as fh: key = 'user.new_attribute' assert _getxattr_helper(fh.name, key) is None value = b'a nice little bytestring' try: pyfuse3.setxattr(fh.name, key, value) except OSError as exc: if exc.errno == errno.ENOTSUP: pytest.skip('ACLs not supported for %s' % fh.name) raise assert _getxattr_helper(fh.name, key) == value if not hasattr(os, 'setxattr'): return key = 'user.another_new_attribute' assert _getxattr_helper(fh.name, key) is None value = b'a nice little bytestring, but slightly modified' os.setxattr(fh.name, key, value) assert _getxattr_helper(fh.name, key) == value def test_copy(): for obj in (pyfuse3.SetattrFields(), pyfuse3.RequestContext()): pytest.raises(PicklingError, copy, obj) for (inst, attr) in ((pyfuse3.EntryAttributes(), 'st_mode'), (pyfuse3.StatvfsData(), 'f_files')): setattr(inst, attr, 42) inst_copy = copy(inst) assert getattr(inst, attr) == getattr(inst_copy, attr) inst = pyfuse3.FUSEError(10) assert inst.errno == copy(inst).errno ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/test_examples.py0000775000175000017500000003252614461445163015254 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_examples.py - Unit tests for pyfuse3. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' if __name__ == '__main__': import pytest import sys sys.exit(pytest.main([__file__] + sys.argv[1:])) import subprocess import os import sys import pytest import stat import shutil import filecmp import errno from tempfile import NamedTemporaryFile from util import fuse_test_marker, wait_for_mount, umount, cleanup from pyfuse3 import _NANOS_PER_SEC basename = os.path.join(os.path.dirname(__file__), '..') TEST_FILE = __file__ pytestmark = fuse_test_marker() with open(TEST_FILE, 'rb') as fh: TEST_DATA = fh.read() def name_generator(__ctr=[0]): __ctr[0] += 1 return 'testfile_%d' % __ctr[0] @pytest.mark.parametrize('filename', ('hello.py', 'hello_asyncio.py')) def test_hello(tmpdir, filename): mnt_dir = str(tmpdir) cmdline = [sys.executable, os.path.join(basename, 'examples', filename), mnt_dir ] mount_process = subprocess.Popen(cmdline, stdin=subprocess.DEVNULL, universal_newlines=True) try: wait_for_mount(mount_process, mnt_dir) assert os.listdir(mnt_dir) == [ 'message' ] filename = os.path.join(mnt_dir, 'message') with open(filename, 'r') as fh: assert fh.read() == 'hello world\n' with pytest.raises(IOError) as exc_info: open(filename, 'r+') assert exc_info.value.errno == errno.EACCES with pytest.raises(IOError) as exc_info: open(filename + 'does-not-exist', 'r+') assert exc_info.value.errno == errno.ENOENT except: cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) def test_tmpfs(tmpdir): mnt_dir = str(tmpdir) cmdline = [sys.executable, os.path.join(basename, 'examples', 'tmpfs.py'), mnt_dir ] mount_process = subprocess.Popen(cmdline, stdin=subprocess.DEVNULL, universal_newlines=True) try: wait_for_mount(mount_process, mnt_dir) tst_write(mnt_dir) tst_mkdir(mnt_dir) tst_symlink(mnt_dir) tst_mknod(mnt_dir) tst_chown(mnt_dir) tst_chmod(mnt_dir) tst_utimens(mnt_dir) tst_rounding(mnt_dir) tst_link(mnt_dir) tst_rename(mnt_dir) tst_readdir(mnt_dir) tst_statvfs(mnt_dir) tst_truncate_path(mnt_dir) tst_truncate_fd(mnt_dir) tst_unlink(mnt_dir) except: cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) def test_passthroughfs(tmpdir): mnt_dir = str(tmpdir.mkdir('mnt')) src_dir = str(tmpdir.mkdir('src')) cmdline = [sys.executable, os.path.join(basename, 'examples', 'passthroughfs.py'), src_dir, mnt_dir ] mount_process = subprocess.Popen(cmdline, stdin=subprocess.DEVNULL, universal_newlines=True) try: wait_for_mount(mount_process, mnt_dir) tst_write(mnt_dir) tst_mkdir(mnt_dir) tst_symlink(mnt_dir) tst_mknod(mnt_dir) if os.getuid() == 0: tst_chown(mnt_dir) tst_chmod(mnt_dir) # Underlying fs may not have full nanosecond resolution tst_utimens(mnt_dir, ns_tol=1000) tst_rounding(mnt_dir) tst_link(mnt_dir) tst_rename(mnt_dir) tst_readdir(mnt_dir) tst_statvfs(mnt_dir) tst_truncate_path(mnt_dir) tst_truncate_fd(mnt_dir) tst_unlink(mnt_dir) tst_passthrough(src_dir, mnt_dir) except: cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) def checked_unlink(filename, path, isdir=False): fullname = os.path.join(path, filename) if isdir: os.rmdir(fullname) else: os.unlink(fullname) with pytest.raises(OSError) as exc_info: os.stat(fullname) assert exc_info.value.errno == errno.ENOENT assert filename not in os.listdir(path) def tst_mkdir(mnt_dir): dirname = name_generator() fullname = mnt_dir + "/" + dirname os.mkdir(fullname) fstat = os.stat(fullname) assert stat.S_ISDIR(fstat.st_mode) assert os.listdir(fullname) == [] assert fstat.st_nlink in (1,2) assert dirname in os.listdir(mnt_dir) checked_unlink(dirname, mnt_dir, isdir=True) def tst_symlink(mnt_dir): linkname = name_generator() fullname = mnt_dir + "/" + linkname os.symlink("/imaginary/dest", fullname) fstat = os.lstat(fullname) assert stat.S_ISLNK(fstat.st_mode) assert os.readlink(fullname) == "/imaginary/dest" assert fstat.st_nlink == 1 assert linkname in os.listdir(mnt_dir) checked_unlink(linkname, mnt_dir) def tst_mknod(mnt_dir): filename = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, filename) fstat = os.lstat(filename) assert stat.S_ISREG(fstat.st_mode) assert fstat.st_nlink == 1 assert os.path.basename(filename) in os.listdir(mnt_dir) assert filecmp.cmp(TEST_FILE, filename, False) checked_unlink(filename, mnt_dir) def tst_chown(mnt_dir): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) uid = fstat.st_uid gid = fstat.st_gid uid_new = uid + 1 os.chown(filename, uid_new, -1) fstat = os.lstat(filename) assert fstat.st_uid == uid_new assert fstat.st_gid == gid gid_new = gid + 1 os.chown(filename, -1, gid_new) fstat = os.lstat(filename) assert fstat.st_uid == uid_new assert fstat.st_gid == gid_new checked_unlink(filename, mnt_dir, isdir=True) def tst_chmod(mnt_dir): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) mode = stat.S_IMODE(fstat.st_mode) mode_new = 0o640 assert mode != mode_new os.chmod(filename, mode_new) fstat = os.lstat(filename) assert stat.S_IMODE(fstat.st_mode) == mode_new checked_unlink(filename, mnt_dir, isdir=True) def tst_write(mnt_dir): name = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, name) assert filecmp.cmp(name, TEST_FILE, False) checked_unlink(name, mnt_dir) def tst_unlink(mnt_dir): name = os.path.join(mnt_dir, name_generator()) data1 = b'foo' data2 = b'bar' with open(os.path.join(mnt_dir, name), 'wb+', buffering=0) as fh: fh.write(data1) checked_unlink(name, mnt_dir) fh.write(data2) fh.seek(0) assert fh.read() == data1+data2 def tst_statvfs(mnt_dir): os.statvfs(mnt_dir) def tst_link(mnt_dir): name1 = os.path.join(mnt_dir, name_generator()) name2 = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, name1) assert filecmp.cmp(name1, TEST_FILE, False) os.link(name1, name2) fstat1 = os.lstat(name1) fstat2 = os.lstat(name2) assert fstat1 == fstat2 assert fstat1.st_nlink == 2 assert os.path.basename(name2) in os.listdir(mnt_dir) assert filecmp.cmp(name1, name2, False) os.unlink(name2) fstat1 = os.lstat(name1) assert fstat1.st_nlink == 1 os.unlink(name1) def tst_rename(mnt_dir): name1 = os.path.join(mnt_dir, name_generator()) name2 = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, name1) assert os.path.basename(name1) in os.listdir(mnt_dir) assert os.path.basename(name2) not in os.listdir(mnt_dir) assert filecmp.cmp(name1, TEST_FILE, False) fstat1 = os.lstat(name1) os.rename(name1, name2) fstat2 = os.lstat(name2) assert fstat1 == fstat2 assert filecmp.cmp(name2, TEST_FILE, False) assert os.path.basename(name1) not in os.listdir(mnt_dir) assert os.path.basename(name2) in os.listdir(mnt_dir) os.unlink(name2) def tst_readdir(mnt_dir): dir_ = os.path.join(mnt_dir, name_generator()) file_ = dir_ + "/" + name_generator() subdir = dir_ + "/" + name_generator() subfile = subdir + "/" + name_generator() os.mkdir(dir_) shutil.copyfile(TEST_FILE, file_) os.mkdir(subdir) shutil.copyfile(TEST_FILE, subfile) listdir_is = os.listdir(dir_) listdir_is.sort() listdir_should = [ os.path.basename(file_), os.path.basename(subdir) ] listdir_should.sort() assert listdir_is == listdir_should os.unlink(file_) os.unlink(subfile) os.rmdir(subdir) os.rmdir(dir_) def tst_truncate_path(mnt_dir): assert len(TEST_DATA) > 1024 filename = os.path.join(mnt_dir, name_generator()) with open(filename, 'wb') as fh: fh.write(TEST_DATA) fstat = os.stat(filename) size = fstat.st_size assert size == len(TEST_DATA) # Add zeros at the end os.truncate(filename, size + 1024) assert os.stat(filename).st_size == size + 1024 with open(filename, 'rb') as fh: assert fh.read(size) == TEST_DATA assert fh.read(1025) == b'\0' * 1024 # Truncate data os.truncate(filename, size - 1024) assert os.stat(filename).st_size == size - 1024 with open(filename, 'rb') as fh: assert fh.read(size) == TEST_DATA[:size-1024] os.unlink(filename) def tst_truncate_fd(mnt_dir): assert len(TEST_DATA) > 1024 with NamedTemporaryFile('w+b', 0, dir=mnt_dir) as fh: fd = fh.fileno() fh.write(TEST_DATA) fstat = os.fstat(fd) size = fstat.st_size assert size == len(TEST_DATA) # Add zeros at the end os.ftruncate(fd, size + 1024) assert os.fstat(fd).st_size == size + 1024 fh.seek(0) assert fh.read(size) == TEST_DATA assert fh.read(1025) == b'\0' * 1024 # Truncate data os.ftruncate(fd, size - 1024) assert os.fstat(fd).st_size == size - 1024 fh.seek(0) assert fh.read(size) == TEST_DATA[:size-1024] def tst_utimens(mnt_dir, ns_tol=0): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) atime = fstat.st_atime + 42.28 mtime = fstat.st_mtime - 42.23 atime_ns = fstat.st_atime_ns + int(42.28*1e9) mtime_ns = fstat.st_mtime_ns - int(42.23*1e9) os.utime(filename, None, ns=(atime_ns, mtime_ns)) fstat = os.lstat(filename) assert abs(fstat.st_atime - atime) < 1e-3 assert abs(fstat.st_mtime - mtime) < 1e-3 assert abs(fstat.st_atime_ns - atime_ns) <= ns_tol assert abs(fstat.st_mtime_ns - mtime_ns) <= ns_tol checked_unlink(filename, mnt_dir, isdir=True) def tst_rounding(mnt_dir, ns_tol=0): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) # Approximately 67 years, ending in 999. # Note: 67 years were chosen to avoid y2038 issues (1970 + 67 = 2037). # Testing these is **not** in scope of this test. secs = 67 * 365 * 24 * 3600 + 999 # Max nanos nanos = _NANOS_PER_SEC - 1 # seconds+ns and ns_tol as a float in seconds secs_f = secs + nanos / _NANOS_PER_SEC secs_tol = ns_tol / _NANOS_PER_SEC atime_ns = secs * _NANOS_PER_SEC + nanos mtime_ns = atime_ns os.utime(filename, None, ns=(atime_ns, mtime_ns)) fstat = os.lstat(filename) assert abs(fstat.st_atime - secs_f) <= secs_tol assert abs(fstat.st_mtime - secs_f) <= secs_tol assert abs(fstat.st_atime_ns - atime_ns) <= ns_tol assert abs(fstat.st_mtime_ns - mtime_ns) <= ns_tol checked_unlink(filename, mnt_dir, isdir=True) def tst_passthrough(src_dir, mnt_dir): # Test propagation from source to mirror name = name_generator() src_name = os.path.join(src_dir, name) mnt_name = os.path.join(mnt_dir, name) assert name not in os.listdir(src_dir) assert name not in os.listdir(mnt_dir) with open(src_name, 'w') as fh: fh.write('Hello, world') assert name in os.listdir(src_dir) assert name in os.listdir(mnt_dir) assert_same_stats(src_name, mnt_name) # Test propagation from mirror to source name = name_generator() src_name = os.path.join(src_dir, name) mnt_name = os.path.join(mnt_dir, name) assert name not in os.listdir(src_dir) assert name not in os.listdir(mnt_dir) with open(mnt_name, 'w') as fh: fh.write('Hello, world') assert name in os.listdir(src_dir) assert name in os.listdir(mnt_dir) assert_same_stats(src_name, mnt_name) # Test propagation inside subdirectory name = name_generator() src_dir = os.path.join(src_dir, 'subdir') mnt_dir = os.path.join(mnt_dir, 'subdir') os.mkdir(src_dir) src_name = os.path.join(src_dir, name) mnt_name = os.path.join(mnt_dir, name) assert name not in os.listdir(src_dir) assert name not in os.listdir(mnt_dir) with open(mnt_name, 'w') as fh: fh.write('Hello, world') assert name in os.listdir(src_dir) assert name in os.listdir(mnt_dir) assert_same_stats(src_name, mnt_name) def assert_same_stats(name1, name2): stat1 = os.stat(name1) stat2 = os.stat(name2) for name in ('st_atime_ns', 'st_mtime_ns', 'st_ctime_ns', 'st_mode', 'st_ino', 'st_nlink', 'st_uid', 'st_gid', 'st_size'): v1 = getattr(stat1, name) v2 = getattr(stat2, name) assert v1 == v2, 'Attribute {} differs by {} ({} vs {})'.format( name, v1 - v2, v1, v2) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/test_fs.py0000775000175000017500000002107014461445163014036 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_fs.py - Unit tests for pyfuse3. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import pytest import sys if __name__ == '__main__': sys.exit(pytest.main([__file__] + sys.argv[1:])) import pyfuse3 from pyfuse3 import FUSEError import multiprocessing import os import errno import stat import time import logging import trio import threading from util import fuse_test_marker, wait_for_mount, umount, cleanup pytestmark = fuse_test_marker() def get_mp(): # We can't use forkserver because we have to make sure # that the server inherits the per-test stdout/stderr file # descriptors. if hasattr(multiprocessing, 'get_context'): mp = multiprocessing.get_context('fork') else: # Older versions only support *fork* anyway mp = multiprocessing if threading.active_count() != 1: raise RuntimeError("Multi-threaded test running is not supported") return mp @pytest.fixture() def testfs(tmpdir): mnt_dir = str(tmpdir) mp = get_mp() with mp.Manager() as mgr: cross_process = mgr.Namespace() mount_process = mp.Process(target=run_fs, args=(mnt_dir, cross_process)) mount_process.start() try: wait_for_mount(mount_process, mnt_dir) yield (mnt_dir, cross_process) except: cleanup(mnt_process, mnt_dir) raise else: umount(mount_process, mnt_dir) def test_invalidate_entry(testfs): (mnt_dir, fs_state) = testfs path = os.path.join(mnt_dir, 'message') os.stat(path) assert fs_state.lookup_called fs_state.lookup_called = False os.stat(path) assert not fs_state.lookup_called # Hardcoded sleeptimes - sorry! Needed because of the special semantics of # invalidate_entry() pyfuse3.setxattr(mnt_dir, 'command', b'forget_entry') time.sleep(1.1) os.stat(path) assert fs_state.lookup_called def test_invalidate_inode(testfs): (mnt_dir, fs_state) = testfs with open(os.path.join(mnt_dir, 'message'), 'r') as fh: assert fh.read() == 'hello world\n' assert fs_state.read_called fs_state.read_called = False fh.seek(0) assert fh.read() == 'hello world\n' assert not fs_state.read_called pyfuse3.setxattr(mnt_dir, 'command', b'forget_inode') fh.seek(0) assert fh.read() == 'hello world\n' assert fs_state.read_called def test_notify_store(testfs): (mnt_dir, fs_state) = testfs with open(os.path.join(mnt_dir, 'message'), 'r') as fh: pyfuse3.setxattr(mnt_dir, 'command', b'store') fs_state.read_called = False assert fh.read() == 'hello world\n' assert not fs_state.read_called def test_entry_timeout(testfs): (mnt_dir, fs_state) = testfs fs_state.entry_timeout = 1 path = os.path.join(mnt_dir, 'message') os.stat(path) assert fs_state.lookup_called fs_state.lookup_called = False os.stat(path) assert not fs_state.lookup_called time.sleep(fs_state.entry_timeout*1.1) fs_state.lookup_called = False os.stat(path) assert fs_state.lookup_called def test_attr_timeout(testfs): (mnt_dir, fs_state) = testfs fs_state.attr_timeout = 1 with open(os.path.join(mnt_dir, 'message'), 'r') as fh: os.fstat(fh.fileno()) assert fs_state.getattr_called fs_state.getattr_called = False os.fstat(fh.fileno()) assert not fs_state.getattr_called time.sleep(fs_state.attr_timeout*1.1) fs_state.getattr_called = False os.fstat(fh.fileno()) assert fs_state.getattr_called def test_terminate(tmpdir): mnt_dir = str(tmpdir) mp = get_mp() with mp.Manager() as mgr: fs_state = mgr.Namespace() mount_process = mp.Process(target=run_fs, args=(mnt_dir, fs_state)) mount_process.start() try: wait_for_mount(mount_process, mnt_dir) pyfuse3.setxattr(mnt_dir, 'command', b'terminate') mount_process.join(5) assert mount_process.exitcode is not None except: cleanup(mount_process, mnt_dir) raise class Fs(pyfuse3.Operations): def __init__(self, cross_process): super(Fs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE+1 self.hello_data = b"hello world\n" self.status = cross_process self.lookup_cnt = 0 self.status.getattr_called = False self.status.lookup_called = False self.status.read_called = False self.status.entry_timeout = 99999 self.status.attr_timeout = 99999 async def getattr(self, inode, ctx=None): entry = pyfuse3.EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = (stat.S_IFDIR | 0o755) entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = (stat.S_IFREG | 0o644) entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654*1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode entry.entry_timeout = self.status.entry_timeout entry.attr_timeout = self.status.attr_timeout self.status.getattr_called = True return entry async def forget(self, inode_list): for (inode, cnt) in inode_list: if inode == self.hello_inode: self.lookup_cnt -= 1 assert self.lookup_cnt >= 0 else: assert inode == pyfuse3.ROOT_INODE async def lookup(self, parent_inode, name, ctx=None): if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) self.lookup_cnt += 1 self.status.lookup_called = True return await self.getattr(self.hello_inode) async def opendir(self, inode, ctx): if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) return inode async def readdir(self, fh, off, token): assert fh == pyfuse3.ROOT_INODE if off == 0: pyfuse3.readdir_reply( token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode, flags, ctx): if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) return pyfuse3.FileInfo(fh=inode) async def read(self, fh, off, size): assert fh == self.hello_inode self.status.read_called = True return self.hello_data[off:off+size] async def setxattr(self, inode, name, value, ctx): if inode != pyfuse3.ROOT_INODE or name != b'command': raise FUSEError(errno.ENOTSUP) if value == b'forget_entry': pyfuse3.invalidate_entry_async(pyfuse3.ROOT_INODE, self.hello_name) # Make sure that the request is pending before we return await trio.sleep(0.1) elif value == b'forget_inode': pyfuse3.invalidate_inode(self.hello_inode) elif value == b'store': pyfuse3.notify_store(self.hello_inode, offset=0, data=self.hello_data) elif value == b'terminate': pyfuse3.terminate() else: raise FUSEError(errno.EINVAL) def run_fs(mountpoint, cross_process): # Logging (note that we run in a new process, so we can't # rely on direct log capture and instead print to stdout) root_logger = logging.getLogger() formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(levelname)s ' '%(funcName)s(%(threadName)s): %(message)s', datefmt="%M:%S") handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.DEBUG) handler.setFormatter(formatter) root_logger.addHandler(handler) root_logger.setLevel(logging.DEBUG) testfs = Fs(cross_process) fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=pyfuse3_testfs') pyfuse3.init(testfs, mountpoint, fuse_options) try: trio.run(pyfuse3.main) finally: pyfuse3.close() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/test_rounding.py0000775000175000017500000000233314461445163015254 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_rounding.py - Unit tests for pyfuse3. Copyright © 2020 Philip Warner This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' if __name__ == '__main__': import pytest import sys sys.exit(pytest.main([__file__] + sys.argv[1:])) import pyfuse3 from pyfuse3 import _NANOS_PER_SEC def test_rounding(): # Incorrect division previously resulted in rounding errors for # all dates. entry = pyfuse3.EntryAttributes() # Approximately 67 years, ending in 999. # Note: 67 years were chosen to avoid y2038 issues (1970 + 67 = 2037). # Testing these is **not** in scope of this test. secs = 67 * 365 * 24 * 3600 + 999 nanos = _NANOS_PER_SEC - 1 total = secs * _NANOS_PER_SEC + nanos entry.st_atime_ns = total entry.st_ctime_ns = total entry.st_mtime_ns = total # Birthtime skipped -- only valid under BSD and OSX #entry.st_birthtime_ns = total assert entry.st_atime_ns == total assert entry.st_ctime_ns == total assert entry.st_mtime_ns == total # Birthtime skipped -- only valid under BSD and OSX #assert entry.st_birthtime_ns == total ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/test/util.py0000664000175000017500000001006514461445163013343 0ustar00twtw#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' util.py - Utility functions for pyfuse3 unit tests. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import os import platform import pytest import shutil import stat import subprocess import time def fuse_test_marker(): '''Return a pytest.marker that indicates FUSE availability If system/user/environment does not support FUSE, return a `pytest.mark.skip` object with more details. If FUSE is supported, return `pytest.mark.uses_fuse()`. ''' if platform.system() == 'Darwin': # No working autodetection, just assume it will work. return skip = lambda x: pytest.mark.skip(reason=x) fusermount_path = shutil.which('fusermount') if fusermount_path is None: return skip("Can't find fusermount executable") if not os.path.exists('/dev/fuse'): return skip("FUSE kernel module does not seem to be loaded") if os.getuid() == 0: return pytest.mark.uses_fuse() mode = os.stat(fusermount_path).st_mode if mode & stat.S_ISUID == 0: return skip('fusermount executable not setuid, and we are not root.') try: fd = os.open('/dev/fuse', os.O_RDWR) except OSError as exc: return skip('Unable to open /dev/fuse: %s' % exc.strerror) else: os.close(fd) return pytest.mark.uses_fuse() def exitcode(process): if isinstance(process, subprocess.Popen): return process.poll() else: if process.is_alive(): return None else: return process.exitcode def wait_for(callable, timeout=10, interval=0.1): '''Wait until *callable* returns something True and return it If *timeout* expires, return None ''' waited = 0 while True: ret = callable() if ret: return ret if waited > timeout: return None waited += interval time.sleep(interval) def wait_for_mount(mount_process, mnt_dir): elapsed = 0 while elapsed < 30: if os.path.ismount(mnt_dir): return True if exitcode(mount_process) is not None: pytest.fail('file system process terminated prematurely') time.sleep(0.1) elapsed += 0.1 pytest.fail("mountpoint failed to come up") def cleanup(mount_process, mnt_dir): if platform.system() == 'Darwin': subprocess.call(['umount', '-l', mnt_dir], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) else: subprocess.call(['fusermount', '-z', '-u', mnt_dir], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) mount_process.terminate() if isinstance(mount_process, subprocess.Popen): try: mount_process.wait(1) except subprocess.TimeoutExpired: mount_process.kill() else: mount_process.join(5) if mount_process.exitcode is None: mount_process.kill() def umount(mount_process, mnt_dir): if platform.system() == 'Darwin': subprocess.check_call(['umount', '-l', mnt_dir]) else: subprocess.check_call(['fusermount', '-z', '-u', mnt_dir]) assert not os.path.ismount(mnt_dir) if isinstance(mount_process, subprocess.Popen): try: code = mount_process.wait(5) if code == 0: return pytest.fail('file system process terminated with code %s' % (code,)) except subprocess.TimeoutExpired: mount_process.terminate() try: mount_process.wait(1) except subprocess.TimeoutExpired: mount_process.kill() else: mount_process.join(5) code = mount_process.exitcode if code == 0: return elif code is None: mount_process.terminate() mount_process.join(1) else: pytest.fail('file system process terminated with code %s' % (code,)) pytest.fail('mount process did not terminate') ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1691344718.5559611 pyfuse3-3.3.0/util/0000775000175000017500000000000014463757517012023 5ustar00twtw././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/util/sdist-sign0000775000175000017500000000046414461445163014026 0ustar00twtw#!/bin/bash R=$1 if [ "$R" = "" ]; then echo "Usage: sdist-sign 1.2.3" exit fi if [ "$QUBES_GPG_DOMAIN" = "" ]; then GPG=gpg else GPG=qubes-gpg-client-wrapper fi python setup.py sdist D=dist/pyfuse3-$R.tar.gz $GPG --detach-sign --local-user "Thomas Waldmann" --armor --output $D.asc $D ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/util/sphinx_cython.py0000664000175000017500000000201614461445163015256 0ustar00twtw# -*- coding: utf-8 -*- ''' sphinx_cython.py This module removes C style type declarations from function and method docstrings. It also works around http://trac.cython.org/cython_trac/ticket/812 Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import re TYPE_RE = re.compile(r'(int|char|unicode|str|bytes)(?:\s+\*?\s*|\s*\*?\s+)([a-zA-Z_].*)') def setup(app): app.connect('autodoc-process-signature', process_signature) def process_signature(app, what, name, obj, options, signature, return_annotation): # Some unused arguments #pylint: disable=W0613 if signature is None: return (signature, return_annotation) new_params = list() for param in (x.strip() for x in signature[1:-1].split(',')): hit = TYPE_RE.match(param) if hit: new_params.append(hit.group(2)) else: new_params.append(param) return ('(%s)' % ', '.join(new_params), return_annotation) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1690716787.0 pyfuse3-3.3.0/util/upload-pypi0000775000175000017500000000042614461445163014203 0ustar00twtw#!/bin/bash R=$1 if [ "$R" = "" ]; then echo "Usage: upload-pypi 1.2.3 [test]" exit fi if [ "$2" = "test" ]; then export TWINE_REPOSITORY_URL=https://test.pypi.org/legacy/ else export TWINE_REPOSITORY_URL= fi D=dist/pyfuse3-$R.tar.gz twine upload $D.asc $D