Metadata-Version: 2.1
Name: freebsd-sysctl
Version: 0.0.7
Summary: Native Python wrapper for FreeBSD sysctls using libc.
Home-page: https://github.com/gronke/py-freebsd_sysctl
Author: Stefan Grönke
Author-email: stefan@gronke.net
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE.txt

# py-freebsd_sysctl

> Native Python wrapper for FreeBSD sysctls using libc.

This Python 3 interface for FreeBSD sysctl has no third party dependency and does not require a compile step to install.
It is meant for performant (read) access to sysctls, their type, value and description.


```python3
>>> from freebsd_sysctl import Sysctl
>>> Sysctl("security.jail.enforce_statfs").value
2
>>> Sysctl("security.jail.enforce_statfs").ctl_type
<class 'freebsd_sysctl.types.INT'>
>>> Sysctl("security.jail.enforce_statfs").description
'Processes in jail cannot see all mounted file systems (deprecated)'
```

With either a sysctl `name` or `oid` the other properties provide memoized access to lazy-loaded properties.

## Properties

### Read/Write

| Property Name | Description |
| ------------- | ----------- |
| `name`        | String identifier of the sysctl. |
| `oid`         | List of Integer values identifying the sysctl. |

### Read-Only

| Read Property Name | Description |
| ------------- | ----------- |
| `value`       | Value of a sysctl. `sysctl <name>` |
| `ctl_type`    | sysctl type class. `sysctl -t <name>` |
| `description` | Text description of the sysctl. `sysctl -d <name>` |

---

This project is heavily inspired by [johalun/sysctl-rs](https://github.com/johalun/sysctl-rs).
Kudos to @fabianfreyer for untiring support and debugging.

It is developed and maintained by Stefan Grönke ([@gronke](https://github.com/gronke)) and published under [BSD 2-Clause License](LICENSE.txt).
