1eda14cbcSMatt MacyThis package provides a wrapper for libzfs_core C library. 2eda14cbcSMatt Macy 3eda14cbcSMatt Macylibzfs_core is intended to be a stable interface for programmatic 4eda14cbcSMatt Macyadministration of ZFS. 5eda14cbcSMatt MacyThis wrapper provides one-to-one wrappers for libzfs_core API functions, 6eda14cbcSMatt Macybut the signatures and types are more natural to Python. 7eda14cbcSMatt Macynvlists are wrapped as dictionaries or lists depending on their usage. 8eda14cbcSMatt MacySome parameters have default values depending on typical use for 9eda14cbcSMatt Macyincreased convenience. 10eda14cbcSMatt MacyEnumerations and bit flags become strings and lists of strings in Python. 11eda14cbcSMatt MacyErrors are reported as exceptions rather than integer errno-style 12eda14cbcSMatt Macyerror codes. The wrapper takes care to provide one-to-many mapping 13eda14cbcSMatt Macyof the error codes to the exceptions by interpreting a context 14eda14cbcSMatt Macyin which the error code is produced. 15eda14cbcSMatt Macy 16eda14cbcSMatt MacyUnit tests and automated test for the libzfs_core API are provided 17eda14cbcSMatt Macywith this package. 18eda14cbcSMatt MacyPlease note that the API tests perform lots of ZFS dataset level 19eda14cbcSMatt Macyoperations and ZFS tries hard to ensure that any modifications 20eda14cbcSMatt Macydo reach stable storage. That means that the operations are done 21eda14cbcSMatt Macysynchronously and that, for example, disk caches are flushed. 22eda14cbcSMatt MacyThus, the tests can be very slow on real hardware. 23eda14cbcSMatt MacyIt is recommended to place the default temporary directory or 24eda14cbcSMatt Macya temporary directory specified by, for instance, TMP environment 25eda14cbcSMatt Macyvariable on a memory backed filesystem. 26eda14cbcSMatt Macy 27eda14cbcSMatt MacyPackage documentation: http://pyzfs.readthedocs.org 28*180f8225SMatt MacyPackage development: https://github.com/openzfs/zfs 29