1
0
mirror of https://github.com/Picovoice/porcupine.git synced 2022-01-28 03:27:53 +03:00

Add specific error classes for Python (#596)

This commit is contained in:
Eric Mikulin
2021-12-20 15:58:41 -08:00
committed by GitHub
parent e0eadf1a2b
commit 4ddb602249
4 changed files with 72 additions and 11 deletions

View File

@@ -10,6 +10,7 @@
#
from .porcupine import Porcupine
from .porcupine_error import *
from .util import *
LIBRARY_PATH = pv_library_path('')

View File

@@ -13,6 +13,8 @@ import os
from ctypes import *
from enum import Enum
from porcupine_error import *
class Porcupine(object):
"""
@@ -37,17 +39,17 @@ class Porcupine(object):
ACTIVATION_REFUSED = 11
_PICOVOICE_STATUS_TO_EXCEPTION = {
PicovoiceStatuses.OUT_OF_MEMORY: MemoryError,
PicovoiceStatuses.IO_ERROR: IOError,
PicovoiceStatuses.INVALID_ARGUMENT: ValueError,
PicovoiceStatuses.STOP_ITERATION: StopIteration,
PicovoiceStatuses.KEY_ERROR: KeyError,
PicovoiceStatuses.INVALID_STATE: ValueError,
PicovoiceStatuses.RUNTIME_ERROR: RuntimeError,
PicovoiceStatuses.ACTIVATION_ERROR: RuntimeError,
PicovoiceStatuses.ACTIVATION_LIMIT_REACHED: PermissionError,
PicovoiceStatuses.ACTIVATION_THROTTLED: PermissionError,
PicovoiceStatuses.ACTIVATION_REFUSED: PermissionError
PicovoiceStatuses.OUT_OF_MEMORY: PorcupineMemoryError,
PicovoiceStatuses.IO_ERROR: PorcupineIOError,
PicovoiceStatuses.INVALID_ARGUMENT: PorcupineInvalidArgumentError,
PicovoiceStatuses.STOP_ITERATION: PorcupineStopIterationError,
PicovoiceStatuses.KEY_ERROR: PorcupineKeyError,
PicovoiceStatuses.INVALID_STATE: PorcupineInvalidStateError,
PicovoiceStatuses.RUNTIME_ERROR: PorcupineRuntimeError,
PicovoiceStatuses.ACTIVATION_ERROR: PorcupineActivationError,
PicovoiceStatuses.ACTIVATION_LIMIT_REACHED: PorcupineActivationLimitError,
PicovoiceStatuses.ACTIVATION_THROTTLED: PorcupineActivationThrottledError,
PicovoiceStatuses.ACTIVATION_REFUSED: PorcupineActivationRefusedError
}
class CPorcupine(Structure):

View File

@@ -0,0 +1,57 @@
#
# Copyright 2021 Picovoice Inc.
#
# You may not use this file except in compliance with the license. A copy of the license is located in the "LICENSE"
# file accompanying this source.
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
#
class PorcupineError(Exception):
pass
class PorcupineMemoryError(PorcupineError):
pass
class PorcupineIOError(PorcupineError):
pass
class PorcupineInvalidArgumentError(PorcupineError):
pass
class PorcupineStopIterationError(PorcupineError):
pass
class PorcupineKeyError(PorcupineError):
pass
class PorcupineInvalidStateError(PorcupineError):
pass
class PorcupineRuntimeError(PorcupineError):
pass
class PorcupineActivationError(PorcupineError):
pass
class PorcupineActivationLimitError(PorcupineError):
pass
class PorcupineActivationThrottledError(PorcupineError):
pass
class PorcupineActivationRefusedError(PorcupineError):
pass

View File

@@ -42,6 +42,7 @@ MANIFEST_IN = """
include pvporcupine/LICENSE
include pvporcupine/__init__.py
include pvporcupine/porcupine.py
include pvporcupine/porcupine_error.py
include pvporcupine/util.py
include pvporcupine/lib/common/porcupine_params.pv
include pvporcupine/lib/beaglebone/libpv_porcupine.so