handlers¶
ModelsHandler¶
- class msdss_models_api.handlers.ModelsHandler[source]¶
Class to handle model operations.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from msdss_models_api.models import Model from msdss_models_api.managers import ModelsManager from msdss_models_api.handlers import ModelsHandler with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Check if model and instance name available # Should not raise exceptions handler.handle_create('temp_model', 'Model', models_manager.instances, models_manager.models) # Check if instance name available # Should not raise exceptions handler.handle_write('temp_model', models_manager.instances) # Create model instance models_manager.create('temp_model', 'Model') # Check if instance exists to read # Should not raise exceptions handler.handle_read('temp_model', models_manager.instances)
handle_create¶
- ModelsHandler.handle_create(name, model, instances, models)[source]¶
Handle model creation operation.
- Parameters
name (str) – Name of the model instance.
model (str) – Name of the model to create.
models (dict(
msdss_models_api.models.Model
)) –Dictionary of available models from parameter
models
, where:Each key is the class name
Each value is the class itself
instances (dict(
msdss_models_api.models.Model
)) – Dictionary of loaded model instances.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from msdss_models_api.models import Model from msdss_models_api.managers import ModelsManager from msdss_models_api.handlers import ModelsHandler with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Check if model and instance name available # Should not raise exceptions handler.handle_create('temp_model', 'Model', models_manager.instances, models_manager.models)
handle_input¶
- ModelsHandler.handle_input(name, instances)[source]¶
Handle model input operation.
- Parameters
name (str) – Name of the model instance.
instances (dict(
msdss_models_api.models.Model
)) – Dictionary of loaded model instances.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from msdss_models_api.models import Model from msdss_models_api.managers import ModelsManager from msdss_models_api.handlers import ModelsHandler with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Create model instance models_manager.create('temp_model', 'Model') # Check if instance exists to read # Should not raise exceptions handler.handle_input('temp_model', models_manager.instances)
handle_output¶
- ModelsHandler.handle_output(name, instances)[source]¶
Handle model output operation.
- Parameters
name (str) – Name of the model instance.
instances (dict(
msdss_models_api.models.Model
)) – Dictionary of loaded model instances.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from msdss_models_api.models import Model from msdss_models_api.managers import ModelsManager from msdss_models_api.handlers import ModelsHandler with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Create model instance models_manager.create('temp_model', 'Model') # Check if instance exists to read # Should not raise exceptions handler.handle_output('temp_model', models_manager.instances)
handle_read¶
- ModelsHandler.handle_read(name, instances)[source]¶
Handle model read operation.
- Parameters
name (str) – Name of the model instance.
instances (dict(
msdss_models_api.models.Model
)) – Dictionary of loaded model instances.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from msdss_models_api.models import Model from msdss_models_api.managers import ModelsManager from msdss_models_api.handlers import ModelsHandler with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Create model instance models_manager.create('temp_model', 'Model') # Check if instance exists to read # Should not raise exceptions handler.handle_read('temp_model', models_manager.instances)
handle_update¶
- ModelsHandler.handle_update(name, instances)[source]¶
Handle model update operation.
- Parameters
name (str) – Name of the model instance.
instances (dict(
msdss_models_api.models.Model
)) – Dictionary of loaded model instances.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from msdss_models_api.models import Model from msdss_models_api.managers import ModelsManager from msdss_models_api.handlers import ModelsHandler with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Create model instance models_manager.create('temp_model', 'Model') # Check if instance exists to read # Should not raise exceptions handler.handle_update('temp_model', models_manager.instances)
handle_write¶
- ModelsHandler.handle_write(name, instances)[source]¶
Handle model write operation.
- Parameters
name (str) – Name of the model instance.
instances (dict(
msdss_models_api.models.Model
)) – Dictionary of loaded model instances.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from msdss_models_api.models import Model from msdss_models_api.managers import ModelsManager from msdss_models_api.handlers import ModelsHandler with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Check if instance name available # Should not raise exceptions handler.handle_write('temp_model', models_manager.instances)
ModelsBackgroundHandler¶
- class msdss_models_api.handlers.ModelsBackgroundHandler[source]¶
Class to handle model background operations.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from celery import Celery from msdss_models_api.models import Model from msdss_models_api.managers import * from msdss_models_api.handlers import * with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsBackgroundHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Create bg manager worker = Celery(broker='redis://localhost:6379/0', backend='redis://localhost:6379/0') # rabbitmq bg_manager = ModelsBackgroundManager(worker, models_manager) # Create model instance models_manager.create('temp_model', 'Model') # Initialize a model instance with inputs as a background process train_data = [ {'col_a': 1, 'col_b': 'a'}, {'col_a': 2, 'col_b': 'b'} ] bg_manager.input('temp_model', train_data) # Check if instance is processing # Should not raise exceptions handler.handle_processing('temp_model', bg_manager.states) # Check if state exists # Should not raise exceptions handler.handle_read_state('temp_model', bg_manager.states)
handle_cancel¶
- ModelsBackgroundHandler.handle_cancel(name, states)[source]¶
Handle model background task cancellation.
- Parameters
name (str) – Name of the model instance.
states (dict) –
Dictionary of processing states for each instance, consisting of the following keys:
task
(str): the action that the process is performing - one of:INPUT
,UPDATE
,LOAD
result
(celery:celery.result.AsyncResult
): celery async object for getting states, ids, etc (see celery.result)started_at
(datetime.datetime
): datetime object for when the task was started
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from celery import Celery from msdss_models_api.models import Model from msdss_models_api.managers import * from msdss_models_api.handlers import * with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsBackgroundHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Create bg manager worker = Celery(broker='redis://localhost:6379/0', backend='redis://localhost:6379/0') # rabbitmq bg_manager = ModelsBackgroundManager(worker, models_manager) # Create model instance models_manager.create('temp_model', 'Model') # Initialize a model instance with inputs as a background process train_data = [ {'col_a': 1, 'col_b': 'a'}, {'col_a': 2, 'col_b': 'b'} ] bg_manager.input('temp_model', train_data) # Check if instance processing can be cancelled # Should raise an exception handler.handle_cancel('temp_model', bg_manager.states)
handle_processing¶
- ModelsBackgroundHandler.handle_processing(name, states)[source]¶
Handle model background task processing.
- Parameters
name (str) – Name of the model instance.
states (dict) –
Dictionary of processing states for each instance, consisting of the following keys:
task
(str): the action that the process is performing - one of:INPUT
,UPDATE
,LOAD
result
(celery:celery.result.AsyncResult
): celery async object for getting states, ids, etc (see celery.result)started_at
(datetime.datetime
): datetime object for when the task was started
Author
Richard Wen <rrwen.dev@gmail.com>
Example
import tempfile from celery import Celery from msdss_models_api.models import Model from msdss_models_api.managers import * from msdss_models_api.handlers import * with tempfile.TemporaryDirectory() as folder_path: # Setup available models models = [Model] # Create handler handler = ModelsBackgroundHandler() # Create manager models_manager = ModelsManager(models, folder=folder_path, handler=handler) # Create bg manager worker = Celery(broker='redis://localhost:6379/0', backend='redis://localhost:6379/0') # rabbitmq bg_manager = ModelsBackgroundManager(worker, models_manager) # Create model instance models_manager.create('temp_model', 'Model') # Initialize a model instance with inputs as a background process train_data = [ {'col_a': 1, 'col_b': 'a'}, {'col_a': 2, 'col_b': 'b'} ] bg_manager.input('temp_model', train_data) # Check if instance is processing # Should not raise exceptions handler.handle_processing('temp_model', bg_manager.states)