Best Python code snippet using localstack_python
Video.py
Source:Video.py
1from typing import Iterable2from .. import db3from .BaseModel import BaseModel4import enum5class VideoType(str, enum.Enum):6 Trailer = "Trailer"7 Reaction = "Reaction"8class Video(BaseModel):9 """10 Video Model11 """12 __tablename__ = 'Video'13 id = db.Column(db.String(64), primary_key=True)14 type = db.Column(db.Enum(VideoType), nullable=False, default=VideoType.Reaction, primary_key=True)15 filename = db.Column(db.String(256), nullable=False)16 trailer_id = db.Column(db.String(64), db.ForeignKey('Video.id'), nullable=True, default=None)17 frame_count = db.Column(db.Integer, nullable=False)18 duration = db.Column(db.Float, nullable=False)19 finished_processing = db.Column(db.Boolean, nullable=False, default=False)20 progress = db.Column(db.Float, nullable=True, default=0.0)21 persons = db.relationship('Person', backref='video', lazy=True)22 key_moments = db.relationship('KeyMoment', backref='video', lazy=True)23 mood = db.relationship('OverallMood', backref='video', lazy=True)24 def __init__(self, id: str, filename: str, frame_count: int, duration: float, progress: float = 0.0,25 finished_processing: bool = False):26 self.id = str(id)27 self.filename = str(filename)28 self.frame_count = int(frame_count)29 self.duration = float(duration)30 self.progress = float(progress)31 self.finished_processing = bool(finished_processing)32 @property33 def trailer(self):34 return db.object_session(self).query(Video).filter_by(id=self.trailer_id, type=VideoType.Trailer).first()35 @property36 def reactions(self):37 return db.object_session(self).query(Video).filter_by(trailer_id=self.id, type=VideoType.Reaction).all()38 def to_json(self, populate: Iterable = (), exclude_columns: Iterable = (), include_foreign_keys=False,39 base_url: str = None):40 json = BaseModel.to_json(self, populate, exclude_columns, include_foreign_keys)41 json['trailer_id'] = self.trailer_id42 json['reaction_ids'] = [reaction.id for reaction in self.reactions]43 if base_url is not None:44 json["img_url"] = f"{base_url}/{self.id}/thumbnail"45 return json46 def __repr__(self):...
consumer.py
Source:consumer.py
1import logging2import typing3from queue import Queue, Empty4from threading import Thread, Event5from enum import Enum6from gender_classification_pipeline.ml_assignment_proto.prediction_pb2 import Prediction7log = logging.getLogger(__file__)8logging.basicConfig(level=logging.INFO)9class Gender(Enum):10 MALE = 011 FEMALE = 112class PredictionConsumer(Thread):13 def __init__(self,14 predictions_queue: Queue, # The queue to read predictions from15 finished_processing: Event, # Signal to stop running16 num_predictions_to_expect: typing.Optional[int] = None17 ):18 super(PredictionConsumer, self).__init__()19 self.predictions_queue = predictions_queue20 self.finished_processing = finished_processing21 self.num_predictions_to_expect = None22 self.num_predictions_processed = 023 self.predicted_genders = {24 Gender.MALE: 0,25 Gender.FEMALE: 026 }27 @property28 def num_consumed(self):29 return self.num_predictions_processed30 def run(self) -> None:31 while not self.finished_processing.is_set() or not self.predictions_queue.empty():32 try:33 prediction = self.predictions_queue.get(timeout=5.0)34 except Empty:35 continue36 log.info(f"[ Consumer ] Acquired prediction (name = {prediction.user.name})")37 gender = prediction.predicted_gender38 self.num_predictions_processed += 139 if gender == Prediction.Gender.Value("MALE"):40 self.predicted_genders[Gender.MALE] += 141 else:42 self.predicted_genders[Gender.FEMALE] += 143 log.info(f"[ Consumer ] Processed {self.num_predictions_processed} so far, "44 f"{self.predicted_genders[Gender.MALE]} males and {self.predicted_genders[Gender.FEMALE]} females")...
pipeline.py
Source:pipeline.py
1import logging2import time3from queue import Queue4import os5from gender_classification_pipeline.consumer import PredictionConsumer6from gender_classification_pipeline.generator import SampleGenerator7from threading import Event8log = logging.getLogger(__file__)9logging.basicConfig(level=logging.INFO)10class GenderClassificationPipeline(object):11 data_path = os.path.join(os.path.dirname(__file__), "data/features.dat")12 def __init__(self, predictor_class, num_samples_to_generate=100):13 self.num_samples_to_generate = num_samples_to_generate14 self.finished_processing = Event()15 self.samples_queue = Queue()16 self.predictions_queue = Queue()17 self.predictor = predictor_class(self.samples_queue, self.predictions_queue, self.finished_processing)18 self.generator = SampleGenerator(self.samples_queue, GenderClassificationPipeline.data_path,19 num_samples_to_generate=num_samples_to_generate)20 self.consumer = PredictionConsumer(self.predictions_queue, self.finished_processing)21 def run(self):22 log.info(f"[ Pipeline ] Starting execution - processing {self.num_samples_to_generate} examples.")23 self.generator.start()24 self.predictor.start()25 self.consumer.start()26 while self.consumer.num_consumed < self.num_samples_to_generate:27 time.sleep(1)28 self.finished_processing.set()29 self.generator.join()30 self.predictor.join()31 self.consumer.join()...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!