# {py:mod}`abr_sdk.core`

```{py:module} abr_sdk.core
```

```{autodoc2-docstring} abr_sdk.core
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`BufferDirection <abr_sdk.core.BufferDirection>`
  - ```{autodoc2-docstring} abr_sdk.core.BufferDirection
    :summary:
    ```
* - {py:obj}`EventFlags <abr_sdk.core.EventFlags>`
  - ```{autodoc2-docstring} abr_sdk.core.EventFlags
    :summary:
    ```
* - {py:obj}`Handle <abr_sdk.core.Handle>`
  - ```{autodoc2-docstring} abr_sdk.core.Handle
    :summary:
    ```
* - {py:obj}`Library <abr_sdk.core.Library>`
  - ```{autodoc2-docstring} abr_sdk.core.Library
    :summary:
    ```
* - {py:obj}`NeuralNetwork <abr_sdk.core.NeuralNetwork>`
  - ```{autodoc2-docstring} abr_sdk.core.NeuralNetwork
    :summary:
    ```
* - {py:obj}`Buffer <abr_sdk.core.Buffer>`
  - ```{autodoc2-docstring} abr_sdk.core.Buffer
    :summary:
    ```
* - {py:obj}`EventSet <abr_sdk.core.EventSet>`
  - ```{autodoc2-docstring} abr_sdk.core.EventSet
    :summary:
    ```
* - {py:obj}`Event <abr_sdk.core.Event>`
  - ```{autodoc2-docstring} abr_sdk.core.Event
    :summary:
    ```
* - {py:obj}`Application <abr_sdk.core.Application>`
  - ```{autodoc2-docstring} abr_sdk.core.Application
    :summary:
    ```
````

### Functions

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`_emit_log <abr_sdk.core._emit_log>`
  - ```{autodoc2-docstring} abr_sdk.core._emit_log
    :summary:
    ```
* - {py:obj}`_variant_to_python <abr_sdk.core._variant_to_python>`
  - ```{autodoc2-docstring} abr_sdk.core._variant_to_python
    :summary:
    ```
* - {py:obj}`install_license <abr_sdk.core.install_license>`
  - ```{autodoc2-docstring} abr_sdk.core.install_license
    :summary:
    ```
````

### Data

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`default_logger <abr_sdk.core.default_logger>`
  - ```{autodoc2-docstring} abr_sdk.core.default_logger
    :summary:
    ```
* - {py:obj}`DEFAULT_LICENSE_DIR <abr_sdk.core.DEFAULT_LICENSE_DIR>`
  - ```{autodoc2-docstring} abr_sdk.core.DEFAULT_LICENSE_DIR
    :summary:
    ```
* - {py:obj}`VariantDict <abr_sdk.core.VariantDict>`
  - ```{autodoc2-docstring} abr_sdk.core.VariantDict
    :summary:
    ```
````

### API

````{py:data} default_logger
:canonical: abr_sdk.core.default_logger
:value: >
   'getLogger(...)'

```{autodoc2-docstring} abr_sdk.core.default_logger
```

````

````{py:function} _emit_log(logger: logging.Logger, level: int, msg: bytes | None) -> None
:canonical: abr_sdk.core._emit_log

```{autodoc2-docstring} abr_sdk.core._emit_log
```
````

````{py:data} DEFAULT_LICENSE_DIR
:canonical: abr_sdk.core.DEFAULT_LICENSE_DIR
:value: >
   None

```{autodoc2-docstring} abr_sdk.core.DEFAULT_LICENSE_DIR
```

````

````{py:function} _variant_to_python(v: abr_sdk.cabi.Variant) -> bool | int | str | None
:canonical: abr_sdk.core._variant_to_python

```{autodoc2-docstring} abr_sdk.core._variant_to_python
```
````

`````{py:class} BufferDirection(*args, **kwds)
:canonical: abr_sdk.core.BufferDirection

Bases: {py:obj}`enum.Enum`

```{autodoc2-docstring} abr_sdk.core.BufferDirection
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.BufferDirection.__init__
```

````{py:attribute} Input
:canonical: abr_sdk.core.BufferDirection.Input
:value: >
   'auto(...)'

```{autodoc2-docstring} abr_sdk.core.BufferDirection.Input
```

````

````{py:attribute} Output
:canonical: abr_sdk.core.BufferDirection.Output
:value: >
   'auto(...)'

```{autodoc2-docstring} abr_sdk.core.BufferDirection.Output
```

````

`````

`````{py:class} EventFlags
:canonical: abr_sdk.core.EventFlags

```{autodoc2-docstring} abr_sdk.core.EventFlags
```

````{py:attribute} auto_disable
:canonical: abr_sdk.core.EventFlags.auto_disable
:type: bool
:value: >
   False

```{autodoc2-docstring} abr_sdk.core.EventFlags.auto_disable
```

````

````{py:attribute} disabled
:canonical: abr_sdk.core.EventFlags.disabled
:type: bool
:value: >
   False

```{autodoc2-docstring} abr_sdk.core.EventFlags.disabled
```

````

````{py:property} bitset
:canonical: abr_sdk.core.EventFlags.bitset
:type: int

```{autodoc2-docstring} abr_sdk.core.EventFlags.bitset
```

````

`````

````{py:data} VariantDict
:canonical: abr_sdk.core.VariantDict
:value: >
   None

```{autodoc2-docstring} abr_sdk.core.VariantDict
```

````

`````{py:class} Handle(cabi: abr_sdk.core.Handle.__init__.cabi, handle: ctypes.c_void_p | None, *, handle_may_be_none: bool = False, class_: str | None = None)
:canonical: abr_sdk.core.Handle

```{autodoc2-docstring} abr_sdk.core.Handle
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.Handle.__init__
```

````{py:method} _ensure_alive() -> None
:canonical: abr_sdk.core.Handle._ensure_alive

```{autodoc2-docstring} abr_sdk.core.Handle._ensure_alive
```

````

````{py:property} properties
:canonical: abr_sdk.core.Handle.properties
:type: abr_sdk.core.VariantDict

```{autodoc2-docstring} abr_sdk.core.Handle.properties
```

````

````{py:method} get_parent() -> typing.Optional[abr_sdk.core.Handle]
:canonical: abr_sdk.core.Handle.get_parent

```{autodoc2-docstring} abr_sdk.core.Handle.get_parent
```

````

````{py:method} get_property(name: str | bytes) -> typing.Any
:canonical: abr_sdk.core.Handle.get_property

```{autodoc2-docstring} abr_sdk.core.Handle.get_property
```

````

`````

`````{py:class} Library(lib_path: str | pathlib.Path, *, lib_search_paths: typing.Iterable[str | pathlib.Path] | None = None, use_default_lib_search_paths: bool = True, app_type: str | None = None)
:canonical: abr_sdk.core.Library

Bases: {py:obj}`abr_sdk.core.Handle`

```{autodoc2-docstring} abr_sdk.core.Library
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.Library.__init__
```

````{py:method} get_default_lib_search_paths() -> list[pathlib.Path]
:canonical: abr_sdk.core.Library.get_default_lib_search_paths
:staticmethod:

```{autodoc2-docstring} abr_sdk.core.Library.get_default_lib_search_paths
```

````

````{py:method} find(lib_path: str | pathlib.Path, *, lib_search_paths: typing.Iterable[str | pathlib.Path] | None = None, use_default_lib_search_paths: bool = True) -> typing.Iterable[pathlib.Path]
:canonical: abr_sdk.core.Library.find
:staticmethod:

```{autodoc2-docstring} abr_sdk.core.Library.find
```

````

````{py:property} path
:canonical: abr_sdk.core.Library.path
:type: pathlib.Path

```{autodoc2-docstring} abr_sdk.core.Library.path
```

````

````{py:property} abi_version
:canonical: abr_sdk.core.Library.abi_version
:type: tuple[int, int]

```{autodoc2-docstring} abr_sdk.core.Library.abi_version
```

````

`````

`````{py:class} NeuralNetwork(cabi: abr_sdk.core.NeuralNetwork.__init__.cabi, handle: ctypes.c_void_p)
:canonical: abr_sdk.core.NeuralNetwork

Bases: {py:obj}`abr_sdk.core.Handle`

```{autodoc2-docstring} abr_sdk.core.NeuralNetwork
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.NeuralNetwork.__init__
```

````{py:property} is_idle
:canonical: abr_sdk.core.NeuralNetwork.is_idle
:type: bool

```{autodoc2-docstring} abr_sdk.core.NeuralNetwork.is_idle
```

````

`````

`````{py:class} Buffer(cabi: abr_sdk.core.Buffer.__init__.cabi, handle: ctypes.c_void_p)
:canonical: abr_sdk.core.Buffer

Bases: {py:obj}`abr_sdk.core.Handle`

```{autodoc2-docstring} abr_sdk.core.Buffer
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.Buffer.__init__
```

````{py:property} dir
:canonical: abr_sdk.core.Buffer.dir
:type: abr_sdk.core.BufferDirection

```{autodoc2-docstring} abr_sdk.core.Buffer.dir
```

````

````{py:property} size
:canonical: abr_sdk.core.Buffer.size
:type: int

```{autodoc2-docstring} abr_sdk.core.Buffer.size
```

````

````{py:property} level
:canonical: abr_sdk.core.Buffer.level
:type: int

```{autodoc2-docstring} abr_sdk.core.Buffer.level
```

````

````{py:method} push(data: bytes | bytearray | memoryview) -> int
:canonical: abr_sdk.core.Buffer.push

```{autodoc2-docstring} abr_sdk.core.Buffer.push
```

````

````{py:method} pull(max_n_bytes: int) -> bytes
:canonical: abr_sdk.core.Buffer.pull

```{autodoc2-docstring} abr_sdk.core.Buffer.pull
```

````

````{py:method} clear() -> None
:canonical: abr_sdk.core.Buffer.clear

```{autodoc2-docstring} abr_sdk.core.Buffer.clear
```

````

`````

`````{py:class} EventSet(cabi: abr_sdk.core.EventSet.__init__.cabi, handle: ctypes.c_void_p, parent: abr_sdk.core.Application)
:canonical: abr_sdk.core.EventSet

Bases: {py:obj}`abr_sdk.core.Handle`

```{autodoc2-docstring} abr_sdk.core.EventSet
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.EventSet.__init__
```

````{py:property} platform_handle
:canonical: abr_sdk.core.EventSet.platform_handle
:type: int

```{autodoc2-docstring} abr_sdk.core.EventSet.platform_handle
```

````

````{py:method} poll(timeout_ms: int) -> bool
:canonical: abr_sdk.core.EventSet.poll

```{autodoc2-docstring} abr_sdk.core.EventSet.poll
```

````

````{py:method} interrupt() -> None
:canonical: abr_sdk.core.EventSet.interrupt

```{autodoc2-docstring} abr_sdk.core.EventSet.interrupt
```

````

````{py:method} create_buffer_level_event(buf: abr_sdk.core.Buffer, threshold: int, flags: abr_sdk.core.EventFlags | None = None) -> abr_sdk.core.Event
:canonical: abr_sdk.core.EventSet.create_buffer_level_event

```{autodoc2-docstring} abr_sdk.core.EventSet.create_buffer_level_event
```

````

````{py:method} create_application_idle_event(flags: abr_sdk.core.EventFlags | None = None) -> abr_sdk.core.Event
:canonical: abr_sdk.core.EventSet.create_application_idle_event

```{autodoc2-docstring} abr_sdk.core.EventSet.create_application_idle_event
```

````

````{py:method} close() -> None
:canonical: abr_sdk.core.EventSet.close

```{autodoc2-docstring} abr_sdk.core.EventSet.close
```

````

````{py:method} __enter__() -> abr_sdk.core.EventSet
:canonical: abr_sdk.core.EventSet.__enter__

```{autodoc2-docstring} abr_sdk.core.EventSet.__enter__
```

````

````{py:method} __exit__(*exc: typing.Any) -> None
:canonical: abr_sdk.core.EventSet.__exit__

```{autodoc2-docstring} abr_sdk.core.EventSet.__exit__
```

````

`````

`````{py:class} Event(cabi: abr_sdk.core.Event.__init__.cabi, handle: typing.Any, parent: abr_sdk.core.EventSet)
:canonical: abr_sdk.core.Event

Bases: {py:obj}`abr_sdk.core.Handle`

```{autodoc2-docstring} abr_sdk.core.Event
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.Event.__init__
```

````{py:property} is_triggered
:canonical: abr_sdk.core.Event.is_triggered
:type: bool

```{autodoc2-docstring} abr_sdk.core.Event.is_triggered
```

````

````{py:method} enable() -> None
:canonical: abr_sdk.core.Event.enable

```{autodoc2-docstring} abr_sdk.core.Event.enable
```

````

````{py:method} disable() -> None
:canonical: abr_sdk.core.Event.disable

```{autodoc2-docstring} abr_sdk.core.Event.disable
```

````

````{py:method} close() -> None
:canonical: abr_sdk.core.Event.close

```{autodoc2-docstring} abr_sdk.core.Event.close
```

````

````{py:method} __enter__() -> abr_sdk.core.Event
:canonical: abr_sdk.core.Event.__enter__

```{autodoc2-docstring} abr_sdk.core.Event.__enter__
```

````

````{py:method} __exit__(*exc: typing.Any) -> None
:canonical: abr_sdk.core.Event.__exit__

```{autodoc2-docstring} abr_sdk.core.Event.__exit__
```

````

`````

`````{py:class} Application(lib_or_path: str | pathlib.Path | abr_sdk.core.Library, *, lib_search_paths: list[str | pathlib.Path] | None = None, use_default_lib_search_paths: bool = True, app_type: str | None = None, resources_dir: str | pathlib.Path | None = None, config: abr_sdk.core.VariantDict | None = None, logger: logging.Logger | None = None)
:canonical: abr_sdk.core.Application

Bases: {py:obj}`abr_sdk.core.Handle`

```{autodoc2-docstring} abr_sdk.core.Application
```

```{rubric} Initialization
```

```{autodoc2-docstring} abr_sdk.core.Application.__init__
```

````{py:method} make_log_callback(logger: logging.Logger | None) -> typing.Any
:canonical: abr_sdk.core.Application.make_log_callback
:staticmethod:

```{autodoc2-docstring} abr_sdk.core.Application.make_log_callback
```

````

````{py:method} make_config(config: abr_sdk.core.VariantDict) -> tuple[typing.Any, int]
:canonical: abr_sdk.core.Application.make_config
:staticmethod:

```{autodoc2-docstring} abr_sdk.core.Application.make_config
```

````

````{py:method} create_event_set() -> abr_sdk.core.EventSet
:canonical: abr_sdk.core.Application.create_event_set

```{autodoc2-docstring} abr_sdk.core.Application.create_event_set
```

````

````{py:method} reset() -> None
:canonical: abr_sdk.core.Application.reset

```{autodoc2-docstring} abr_sdk.core.Application.reset
```

````

````{py:method} close() -> None
:canonical: abr_sdk.core.Application.close

```{autodoc2-docstring} abr_sdk.core.Application.close
```

````

````{py:method} __enter__() -> abr_sdk.core.Application
:canonical: abr_sdk.core.Application.__enter__

```{autodoc2-docstring} abr_sdk.core.Application.__enter__
```

````

````{py:method} __exit__(*exc: typing.Any) -> None
:canonical: abr_sdk.core.Application.__exit__

```{autodoc2-docstring} abr_sdk.core.Application.__exit__
```

````

`````

````{py:function} install_license(library: abr_sdk.core.Library, envelope: str, *, license_dir: str | pathlib.Path, logger: logging.Logger | None = None) -> None
:canonical: abr_sdk.core.install_license

```{autodoc2-docstring} abr_sdk.core.install_license
```
````
