Best Python code snippet using pandera_python
web_audio.py
Source:web_audio.py  
...15    '''16    def to_json(self) -> str:17        return self18    @classmethod19    def from_json(cls, json: str) -> GraphObjectId:20        return cls(json)21    def __repr__(self):22        return 'GraphObjectId({})'.format(super().__repr__())23class ContextType(enum.Enum):24    '''25    Enum of BaseAudioContext types26    '''27    REALTIME = "realtime"28    OFFLINE = "offline"29    def to_json(self):30        return self.value31    @classmethod32    def from_json(cls, json):33        return cls(json)34class ContextState(enum.Enum):35    '''36    Enum of AudioContextState from the spec37    '''38    SUSPENDED = "suspended"39    RUNNING = "running"40    CLOSED = "closed"41    def to_json(self):42        return self.value43    @classmethod44    def from_json(cls, json):45        return cls(json)46class NodeType(str):47    '''48    Enum of AudioNode types49    '''50    def to_json(self) -> str:51        return self52    @classmethod53    def from_json(cls, json: str) -> NodeType:54        return cls(json)55    def __repr__(self):56        return 'NodeType({})'.format(super().__repr__())57class ChannelCountMode(enum.Enum):58    '''59    Enum of AudioNode::ChannelCountMode from the spec60    '''61    CLAMPED_MAX = "clamped-max"62    EXPLICIT = "explicit"63    MAX_ = "max"64    def to_json(self):65        return self.value66    @classmethod67    def from_json(cls, json):68        return cls(json)69class ChannelInterpretation(enum.Enum):70    '''71    Enum of AudioNode::ChannelInterpretation from the spec72    '''73    DISCRETE = "discrete"74    SPEAKERS = "speakers"75    def to_json(self):76        return self.value77    @classmethod78    def from_json(cls, json):79        return cls(json)80class ParamType(str):81    '''82    Enum of AudioParam types83    '''84    def to_json(self) -> str:85        return self86    @classmethod87    def from_json(cls, json: str) -> ParamType:88        return cls(json)89    def __repr__(self):90        return 'ParamType({})'.format(super().__repr__())91class AutomationRate(enum.Enum):92    '''93    Enum of AudioParam::AutomationRate from the spec94    '''95    A_RATE = "a-rate"96    K_RATE = "k-rate"97    def to_json(self):98        return self.value99    @classmethod100    def from_json(cls, json):101        return cls(json)102@dataclass103class ContextRealtimeData:104    '''105    Fields in AudioContext that change in real-time.106    '''107    #: The current context time in second in BaseAudioContext.108    current_time: float109    #: The time spent on rendering graph divided by render qunatum duration,110    #: and multiplied by 100. 100 means the audio renderer reached the full111    #: capacity and glitch may occur.112    render_capacity: float113    #: A running mean of callback interval.114    callback_interval_mean: float115    #: A running variance of callback interval.116    callback_interval_variance: float117    def to_json(self):118        json = dict()119        json['currentTime'] = self.current_time120        json['renderCapacity'] = self.render_capacity121        json['callbackIntervalMean'] = self.callback_interval_mean122        json['callbackIntervalVariance'] = self.callback_interval_variance123        return json124    @classmethod125    def from_json(cls, json):126        return cls(127            current_time=float(json['currentTime']),128            render_capacity=float(json['renderCapacity']),129            callback_interval_mean=float(json['callbackIntervalMean']),130            callback_interval_variance=float(json['callbackIntervalVariance']),131        )132@dataclass133class BaseAudioContext:134    '''135    Protocol object for BaseAudioContext136    '''137    context_id: GraphObjectId138    context_type: ContextType139    context_state: ContextState140    #: Platform-dependent callback buffer size.141    callback_buffer_size: float142    #: Number of output channels supported by audio hardware in use.143    max_output_channel_count: float144    #: Context sample rate.145    sample_rate: float146    realtime_data: typing.Optional[ContextRealtimeData] = None147    def to_json(self):148        json = dict()149        json['contextId'] = self.context_id.to_json()150        json['contextType'] = self.context_type.to_json()151        json['contextState'] = self.context_state.to_json()152        json['callbackBufferSize'] = self.callback_buffer_size153        json['maxOutputChannelCount'] = self.max_output_channel_count154        json['sampleRate'] = self.sample_rate155        if self.realtime_data is not None:156            json['realtimeData'] = self.realtime_data.to_json()157        return json158    @classmethod159    def from_json(cls, json):160        return cls(161            context_id=GraphObjectId.from_json(json['contextId']),162            context_type=ContextType.from_json(json['contextType']),163            context_state=ContextState.from_json(json['contextState']),164            callback_buffer_size=float(json['callbackBufferSize']),165            max_output_channel_count=float(json['maxOutputChannelCount']),166            sample_rate=float(json['sampleRate']),167            realtime_data=ContextRealtimeData.from_json(json['realtimeData']) if 'realtimeData' in json else None,168        )169@dataclass170class AudioListener:171    '''172    Protocol object for AudioListner173    '''174    listener_id: GraphObjectId175    context_id: GraphObjectId176    def to_json(self):177        json = dict()178        json['listenerId'] = self.listener_id.to_json()179        json['contextId'] = self.context_id.to_json()180        return json181    @classmethod182    def from_json(cls, json):183        return cls(184            listener_id=GraphObjectId.from_json(json['listenerId']),185            context_id=GraphObjectId.from_json(json['contextId']),186        )187@dataclass188class AudioNode:189    '''190    Protocol object for AudioNode191    '''192    node_id: GraphObjectId193    context_id: GraphObjectId194    node_type: NodeType195    number_of_inputs: float196    number_of_outputs: float197    channel_count: float198    channel_count_mode: ChannelCountMode199    channel_interpretation: ChannelInterpretation200    def to_json(self):201        json = dict()202        json['nodeId'] = self.node_id.to_json()203        json['contextId'] = self.context_id.to_json()204        json['nodeType'] = self.node_type.to_json()205        json['numberOfInputs'] = self.number_of_inputs206        json['numberOfOutputs'] = self.number_of_outputs207        json['channelCount'] = self.channel_count208        json['channelCountMode'] = self.channel_count_mode.to_json()209        json['channelInterpretation'] = self.channel_interpretation.to_json()210        return json211    @classmethod212    def from_json(cls, json):213        return cls(214            node_id=GraphObjectId.from_json(json['nodeId']),215            context_id=GraphObjectId.from_json(json['contextId']),216            node_type=NodeType.from_json(json['nodeType']),217            number_of_inputs=float(json['numberOfInputs']),218            number_of_outputs=float(json['numberOfOutputs']),219            channel_count=float(json['channelCount']),220            channel_count_mode=ChannelCountMode.from_json(json['channelCountMode']),221            channel_interpretation=ChannelInterpretation.from_json(json['channelInterpretation']),222        )223@dataclass224class AudioParam:225    '''226    Protocol object for AudioParam227    '''228    param_id: GraphObjectId229    node_id: GraphObjectId230    context_id: GraphObjectId231    param_type: ParamType232    rate: AutomationRate233    default_value: float234    min_value: float235    max_value: float236    def to_json(self):237        json = dict()238        json['paramId'] = self.param_id.to_json()239        json['nodeId'] = self.node_id.to_json()240        json['contextId'] = self.context_id.to_json()241        json['paramType'] = self.param_type.to_json()242        json['rate'] = self.rate.to_json()243        json['defaultValue'] = self.default_value244        json['minValue'] = self.min_value245        json['maxValue'] = self.max_value246        return json247    @classmethod248    def from_json(cls, json):249        return cls(250            param_id=GraphObjectId.from_json(json['paramId']),251            node_id=GraphObjectId.from_json(json['nodeId']),252            context_id=GraphObjectId.from_json(json['contextId']),253            param_type=ParamType.from_json(json['paramType']),254            rate=AutomationRate.from_json(json['rate']),255            default_value=float(json['defaultValue']),256            min_value=float(json['minValue']),257            max_value=float(json['maxValue']),258        )259def enable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:260    '''261    Enables the WebAudio domain and starts sending context lifetime events.262    '''263    cmd_dict: T_JSON_DICT = {264        'method': 'WebAudio.enable',265    }266    json = yield cmd_dict267def disable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:268    '''269    Disables the WebAudio domain.270    '''271    cmd_dict: T_JSON_DICT = {272        'method': 'WebAudio.disable',273    }274    json = yield cmd_dict275def get_realtime_data(276        context_id: GraphObjectId277    ) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,ContextRealtimeData]:278    '''279    Fetch the realtime data from the registered contexts.280    :param context_id:281    :returns: 282    '''283    params: T_JSON_DICT = dict()284    params['contextId'] = context_id.to_json()285    cmd_dict: T_JSON_DICT = {286        'method': 'WebAudio.getRealtimeData',287        'params': params,288    }289    json = yield cmd_dict290    return ContextRealtimeData.from_json(json['realtimeData'])291@event_class('WebAudio.contextCreated')292@dataclass293class ContextCreated:294    '''295    Notifies that a new BaseAudioContext has been created.296    '''297    context: BaseAudioContext298    @classmethod299    def from_json(cls, json: T_JSON_DICT) -> ContextCreated:300        return cls(301            context=BaseAudioContext.from_json(json['context'])302        )303@event_class('WebAudio.contextWillBeDestroyed')304@dataclass305class ContextWillBeDestroyed:306    '''307    Notifies that an existing BaseAudioContext will be destroyed.308    '''309    context_id: GraphObjectId310    @classmethod311    def from_json(cls, json: T_JSON_DICT) -> ContextWillBeDestroyed:312        return cls(313            context_id=GraphObjectId.from_json(json['contextId'])314        )315@event_class('WebAudio.contextChanged')316@dataclass317class ContextChanged:318    '''319    Notifies that existing BaseAudioContext has changed some properties (id stays the same)..320    '''321    context: BaseAudioContext322    @classmethod323    def from_json(cls, json: T_JSON_DICT) -> ContextChanged:324        return cls(325            context=BaseAudioContext.from_json(json['context'])326        )327@event_class('WebAudio.audioListenerCreated')328@dataclass329class AudioListenerCreated:330    '''331    Notifies that the construction of an AudioListener has finished.332    '''333    listener: AudioListener334    @classmethod335    def from_json(cls, json: T_JSON_DICT) -> AudioListenerCreated:336        return cls(337            listener=AudioListener.from_json(json['listener'])338        )339@event_class('WebAudio.audioListenerWillBeDestroyed')340@dataclass341class AudioListenerWillBeDestroyed:342    '''343    Notifies that a new AudioListener has been created.344    '''345    context_id: GraphObjectId346    listener_id: GraphObjectId347    @classmethod348    def from_json(cls, json: T_JSON_DICT) -> AudioListenerWillBeDestroyed:349        return cls(350            context_id=GraphObjectId.from_json(json['contextId']),351            listener_id=GraphObjectId.from_json(json['listenerId'])352        )353@event_class('WebAudio.audioNodeCreated')354@dataclass355class AudioNodeCreated:356    '''357    Notifies that a new AudioNode has been created.358    '''359    node: AudioNode360    @classmethod361    def from_json(cls, json: T_JSON_DICT) -> AudioNodeCreated:362        return cls(363            node=AudioNode.from_json(json['node'])364        )365@event_class('WebAudio.audioNodeWillBeDestroyed')366@dataclass367class AudioNodeWillBeDestroyed:368    '''369    Notifies that an existing AudioNode has been destroyed.370    '''371    context_id: GraphObjectId372    node_id: GraphObjectId373    @classmethod374    def from_json(cls, json: T_JSON_DICT) -> AudioNodeWillBeDestroyed:375        return cls(376            context_id=GraphObjectId.from_json(json['contextId']),377            node_id=GraphObjectId.from_json(json['nodeId'])378        )379@event_class('WebAudio.audioParamCreated')380@dataclass381class AudioParamCreated:382    '''383    Notifies that a new AudioParam has been created.384    '''385    param: AudioParam386    @classmethod387    def from_json(cls, json: T_JSON_DICT) -> AudioParamCreated:388        return cls(389            param=AudioParam.from_json(json['param'])390        )391@event_class('WebAudio.audioParamWillBeDestroyed')392@dataclass393class AudioParamWillBeDestroyed:394    '''395    Notifies that an existing AudioParam has been destroyed.396    '''397    context_id: GraphObjectId398    node_id: GraphObjectId399    param_id: GraphObjectId400    @classmethod401    def from_json(cls, json: T_JSON_DICT) -> AudioParamWillBeDestroyed:402        return cls(403            context_id=GraphObjectId.from_json(json['contextId']),404            node_id=GraphObjectId.from_json(json['nodeId']),405            param_id=GraphObjectId.from_json(json['paramId'])406        )407@event_class('WebAudio.nodesConnected')408@dataclass409class NodesConnected:410    '''411    Notifies that two AudioNodes are connected.412    '''413    context_id: GraphObjectId414    source_id: GraphObjectId415    destination_id: GraphObjectId416    source_output_index: typing.Optional[float]417    destination_input_index: typing.Optional[float]418    @classmethod419    def from_json(cls, json: T_JSON_DICT) -> NodesConnected:420        return cls(421            context_id=GraphObjectId.from_json(json['contextId']),422            source_id=GraphObjectId.from_json(json['sourceId']),423            destination_id=GraphObjectId.from_json(json['destinationId']),424            source_output_index=float(json['sourceOutputIndex']) if 'sourceOutputIndex' in json else None,425            destination_input_index=float(json['destinationInputIndex']) if 'destinationInputIndex' in json else None426        )427@event_class('WebAudio.nodesDisconnected')428@dataclass429class NodesDisconnected:430    '''431    Notifies that AudioNodes are disconnected. The destination can be null, and it means all the outgoing connections from the source are disconnected.432    '''433    context_id: GraphObjectId434    source_id: GraphObjectId435    destination_id: GraphObjectId436    source_output_index: typing.Optional[float]437    destination_input_index: typing.Optional[float]438    @classmethod439    def from_json(cls, json: T_JSON_DICT) -> NodesDisconnected:440        return cls(441            context_id=GraphObjectId.from_json(json['contextId']),442            source_id=GraphObjectId.from_json(json['sourceId']),443            destination_id=GraphObjectId.from_json(json['destinationId']),444            source_output_index=float(json['sourceOutputIndex']) if 'sourceOutputIndex' in json else None,445            destination_input_index=float(json['destinationInputIndex']) if 'destinationInputIndex' in json else None446        )447@event_class('WebAudio.nodeParamConnected')448@dataclass449class NodeParamConnected:450    '''451    Notifies that an AudioNode is connected to an AudioParam.452    '''453    context_id: GraphObjectId454    source_id: GraphObjectId455    destination_id: GraphObjectId456    source_output_index: typing.Optional[float]457    @classmethod458    def from_json(cls, json: T_JSON_DICT) -> NodeParamConnected:459        return cls(460            context_id=GraphObjectId.from_json(json['contextId']),461            source_id=GraphObjectId.from_json(json['sourceId']),462            destination_id=GraphObjectId.from_json(json['destinationId']),463            source_output_index=float(json['sourceOutputIndex']) if 'sourceOutputIndex' in json else None464        )465@event_class('WebAudio.nodeParamDisconnected')466@dataclass467class NodeParamDisconnected:468    '''469    Notifies that an AudioNode is disconnected to an AudioParam.470    '''471    context_id: GraphObjectId472    source_id: GraphObjectId473    destination_id: GraphObjectId474    source_output_index: typing.Optional[float]475    @classmethod476    def from_json(cls, json: T_JSON_DICT) -> NodeParamDisconnected:477        return cls(478            context_id=GraphObjectId.from_json(json['contextId']),479            source_id=GraphObjectId.from_json(json['sourceId']),480            destination_id=GraphObjectId.from_json(json['destinationId']),481            source_output_index=float(json['sourceOutputIndex']) if 'sourceOutputIndex' in json else None...test_fields.py
Source:test_fields.py  
...8class DateTest(unittest.TestCase):  # lint-amnesty, pylint: disable=missing-class-docstring9    date = Date()10    def compare_dates(self, dt1, dt2, expected_delta):11        assert (dt1 - dt2) == expected_delta, ((((str(dt1) + '-') + str(dt2)) + '!=') + str(expected_delta))12    def test_from_json(self):13        """Test conversion from iso compatible date strings to struct_time"""14        self.compare_dates(15            DateTest.date.from_json("2013-01-01"),16            DateTest.date.from_json("2012-12-31"),17            datetime.timedelta(days=1)18        )19        self.compare_dates(20            DateTest.date.from_json("2013-01-01T00"),21            DateTest.date.from_json("2012-12-31T23"),22            datetime.timedelta(hours=1)23        )24        self.compare_dates(25            DateTest.date.from_json("2013-01-01T00:00"),26            DateTest.date.from_json("2012-12-31T23:59"),27            datetime.timedelta(minutes=1)28        )29        self.compare_dates(30            DateTest.date.from_json("2013-01-01T00:00:00"),31            DateTest.date.from_json("2012-12-31T23:59:59"),32            datetime.timedelta(seconds=1)33        )34        self.compare_dates(35            DateTest.date.from_json("2013-01-01T00:00:00Z"),36            DateTest.date.from_json("2012-12-31T23:59:59Z"),37            datetime.timedelta(seconds=1)38        )39        self.compare_dates(40            DateTest.date.from_json("2012-12-31T23:00:01-01:00"),41            DateTest.date.from_json("2013-01-01T00:00:00+01:00"),42            datetime.timedelta(hours=1, seconds=1)43        )44    def test_enforce_type(self):45        assert DateTest.date.enforce_type(None) is None46        assert DateTest.date.enforce_type('') is None47        assert DateTest.date.enforce_type('2012-12-31T23:00:01') ==\48               datetime.datetime(2012, 12, 31, 23, 0, 1, tzinfo=UTC)49        assert DateTest.date.enforce_type(1234567890000) == datetime.datetime(2009, 2, 13, 23, 31, 30, tzinfo=UTC)50        assert DateTest.date.enforce_type(datetime.datetime(2014, 5, 9, 21, 1, 27, tzinfo=UTC)) ==\51               datetime.datetime(2014, 5, 9, 21, 1, 27, tzinfo=UTC)52        with pytest.raises(TypeError):53            DateTest.date.enforce_type([1])54    def test_return_None(self):55        assert DateTest.date.from_json('') is None56        assert DateTest.date.from_json(None) is None57        with pytest.raises(TypeError):58            DateTest.date.from_json(['unknown value'])59    def test_old_due_date_format(self):60        current = datetime.datetime.today()61        assert datetime.datetime(current.year, 3, 12, 12, tzinfo=UTC) == DateTest.date.from_json('March 12 12:00')62        assert datetime.datetime(current.year, 12, 4, 16, 30, tzinfo=UTC) == DateTest.date.from_json('December 4 16:30')63        assert DateTest.date.from_json('12 12:00') is None64    def test_non_std_from_json(self):65        """66        Test the non-standard args being passed to from_json67        """68        now = datetime.datetime.now(UTC)69        delta = now - datetime.datetime.fromtimestamp(0, UTC)70        assert DateTest.date.from_json(delta.total_seconds() * 1000) == now71        yesterday = datetime.datetime.now(UTC) - datetime.timedelta(days=-1)72        assert DateTest.date.from_json(yesterday) == yesterday73    def test_to_json(self):74        """75        Test converting time reprs to iso dates76        """77        assert DateTest.date.to_json(datetime.datetime.strptime('2012-12-31T23:59:59Z', '%Y-%m-%dT%H:%M:%SZ')) ==\78               '2012-12-31T23:59:59Z'79        assert DateTest.date.to_json(DateTest.date.from_json('2012-12-31T23:59:59Z')) == '2012-12-31T23:59:59Z'80        assert DateTest.date.to_json(DateTest.date.from_json('2012-12-31T23:00:01-01:00')) ==\81               '2012-12-31T23:00:01-01:00'82        with pytest.raises(TypeError):83            DateTest.date.to_json('2012-12-31T23:00:01-01:00')84class TimedeltaTest(unittest.TestCase):  # lint-amnesty, pylint: disable=missing-class-docstring85    delta = Timedelta()86    def test_from_json(self):87        assert TimedeltaTest.delta.from_json('1 day 12 hours 59 minutes 59 seconds') ==\88               datetime.timedelta(days=1, hours=12, minutes=59, seconds=59)89        assert TimedeltaTest.delta.from_json('1 day 46799 seconds') == datetime.timedelta(days=1, seconds=46799)90    def test_enforce_type(self):91        assert TimedeltaTest.delta.enforce_type(None) is None92        assert TimedeltaTest.delta.enforce_type(datetime.timedelta(days=1, seconds=46799)) ==\93               datetime.timedelta(days=1, seconds=46799)94        assert TimedeltaTest.delta.enforce_type('1 day 46799 seconds') == datetime.timedelta(days=1, seconds=46799)95        with pytest.raises(TypeError):96            TimedeltaTest.delta.enforce_type([1])97    def test_to_json(self):98        assert '1 days 46799 seconds' ==\99               TimedeltaTest.delta.to_json(datetime.timedelta(days=1, hours=12, minutes=59, seconds=59))100class TimeInfoTest(unittest.TestCase):  # lint-amnesty, pylint: disable=missing-class-docstring101    def test_time_info(self):102        due_date = datetime.datetime(2000, 4, 14, 10, tzinfo=UTC)103        grace_pd_string = '1 day 12 hours 59 minutes 59 seconds'104        timeinfo = TimeInfo(due_date, grace_pd_string)105        assert timeinfo.close_date == (due_date + Timedelta().from_json(grace_pd_string))106class RelativeTimeTest(unittest.TestCase):  # lint-amnesty, pylint: disable=missing-class-docstring107    delta = RelativeTime()108    def test_from_json(self):109        assert RelativeTimeTest.delta.from_json('0:05:07') == datetime.timedelta(seconds=307)110        assert RelativeTimeTest.delta.from_json(100.0) == datetime.timedelta(seconds=100)111        assert RelativeTimeTest.delta.from_json(None) == datetime.timedelta(seconds=0)112        with pytest.raises(TypeError):113            RelativeTimeTest.delta.from_json(1234)  # int114        with pytest.raises(ValueError):115            RelativeTimeTest.delta.from_json("77:77:77")116    def test_enforce_type(self):117        assert RelativeTimeTest.delta.enforce_type(None) is None118        assert RelativeTimeTest.delta.enforce_type(datetime.timedelta(days=1, seconds=46799)) ==\119               datetime.timedelta(days=1, seconds=46799)120        assert RelativeTimeTest.delta.enforce_type('0:05:07') == datetime.timedelta(seconds=307)121        with pytest.raises(TypeError):122            RelativeTimeTest.delta.enforce_type([1])123    def test_to_json(self):124        assert '01:02:03' == RelativeTimeTest.delta.to_json(datetime.timedelta(seconds=3723))125        assert '00:00:00' == RelativeTimeTest.delta.to_json(None)126        assert '00:01:40' == RelativeTimeTest.delta.to_json(100.0)127        error_msg = "RelativeTime max value is 23:59:59=86400.0 seconds, but 90000.0 seconds is passed"128        with self.assertRaisesRegex(ValueError, error_msg):129            RelativeTimeTest.delta.to_json(datetime.timedelta(seconds=90000))...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!!
