Skip to main content
Glama

Malaysia Prayer Time MCP Server

models.cpython-311.pyc7.39 kB
� X$�g\���dZddlmZmZddlmZddlmZmZmZddl Z e j d��Z Gd�de��Z Gd �d e��Z dS) z� Data models for prayer times and zones. This module defines Pydantic models for representing prayer times and zone data with built-in validation and helper methods. �)�datetime�time)�List)� BaseModel�Field�field_validatorNz!^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$c �4�eZdZUdZedd���Zeed<edd���Zeed<edd ���Z edzed <edd ���Z eed <edd ���Z eed<edd���Z eed<edd���Z eed<edd���Zeed<edd���Zeed<ed��ededefd�����Zed d ddddd��ededzdedzfd�����Zdedefd�Zdedefd�ZGd�d��ZdS) � PrayerTimesa� Represents prayer times for a specific date. Fields: date: Date in YYYY-MM-DD format day: Day of the week imsak: Pre-dawn meal time (HH:mm) fajr: Dawn prayer time (HH:mm) syuruk: Sunrise time (HH:mm) dhuhr: Noon prayer time (HH:mm) asr: Afternoon prayer time (HH:mm) maghrib: Sunset prayer time (HH:mm) isha: Night prayer time (HH:mm) .zDate in YYYY-MM-DD format)� description�datezDay of the week�dayNzPre-dawn meal time�imsakzDawn prayer time�fajrz Sunrise time�syurukzNoon prayer time�dhuhrzAfternoon prayer time�asrzSunset prayer time�maghribzNight prayer time�isha�v�returnc�l� tj|d��|S#t$rtd���wxYw)zValidate date format.z%Y-%m-%dz(Invalid date format. Expected YYYY-MM-DD)r�strptime� ValueError��clsrs �Q/Users/aman/2) personal/mcp-server-malaysia-prayer-time/src/waktu_solat/models.py� validate_datezPrayerTimes.validate_date+sN�� I� � �a�� ,� ,� ,��H��� I� I� I��G�H�H� H� I���s��3c�`�|�dSt�|��std���|S)zValidate time format.Nz#Invalid time format. Expected HH:mm)� TIME_PATTERN�matchrrs r� validate_timezPrayerTimes.validate_time5s9�� �9��4��!�!�!�$�$� D��B�C�C� C����prayerc�$�t||�����std|�����t||�����}t t |�d����\}}t||��S)a Get prayer time as datetime.time object. Args: prayer: Name of the prayer (e.g., 'fajr', 'dhuhr') Returns: datetime.time object representing the prayer time Raises: ValueError: If prayer name is invalid zInvalid prayer name: �:)�hasattr�lowerr�getattr�map�int�splitr)�selfr#�time_str�hour�minutes r�get_timezPrayerTimes.get_time?s{���t�V�\�\�^�^�,�,� ?��=�V�=�=�>�>� >��4������0�0���3����s� 3� 3�4�4� ��f��D�&�!�!�!r"c�.�|���dvS)z� Check if a given string is a valid prayer name. Args: prayer: Name of the prayer to check Returns: True if valid prayer name, False otherwise >rrrrrrr)r')r,r#s r�is_valid_prayer_timez PrayerTimes.is_valid_prayer_timeSs���|�|�~�~�" � � r"c �.�eZdZdZdddddddd d d d � iZd S)�PrayerTimes.Config�Pydantic model configuration.�examplez 2024-04-04�Thursdayz05:45z05:55z07:08z13:16z16:27z19:21z20:30) r r rrrrrrrN��__name__� __module__� __qualname__�__doc__�json_schema_extra�r"r�Configr4gsH������+�+� �$�!� ��!� ��"�� � �  ���r"r?)r9r:r;r<rr �str�__annotations__r rrrrrrrr� classmethodrr!rr0�boolr2r?r>r"rr r sP������� � ���c�'B�C�C�C�D�#�C�C�C��u�S�&7�8�8�8�C��8�8�8���d�0D�E�E�E�E�3��:�E�E�E���c�'9�:�:�:�D�#�:�:�:��%���8�8�8�F�C�8�8�8���s�(:�;�;�;�E�3�;�;�;��u�S�&=�>�>�>�C��>�>�>��5��*>�?�?�?�G�S�?�?�?���c�':�;�;�;�D�#�;�;�;��_�V����I�c�I�c�I�I�I��[���I��_�W�f�h��� �6�R�R���c�D�j��S�4�Z�����[�S�R��"�s�"�t�"�"�"�"�( �3� �4� � � � �( � � � � � � � � � r"r c�(�eZdZUdZeddd���Zeed<eddd���Zeed<edd d���Z eed <e dd d��e d ed efd �����Z e d��e d ed efd�����Z Gd�d��ZdS)�Zonez� Represents a prayer time zone. Fields: name: Name of the zone code: Unique zone code (e.g., 'SGR01') negeri: State name .zName of the zone�)r � min_length�namezUnique zone code�codez State name�negerirrc�P�|���}|std���|S)zValidate all string fields.zField cannot be empty)�striprrs r�validate_fieldszZone.validate_fields�s-�� �G�G�I�I��� 6��4�5�5� 5��r"c�N�tjd|��std���|S)zValidate zone code format.z^[A-Z]{3}\d{2}$z0Invalid zone code format. Expected format: ABC12)�rer rrs r� validate_codezZone.validate_code�s.���x�*�A�.�.� Q��O�P�P� P��r"c�"�eZdZdZddddd�iZdS)� Zone.Configr5r6�Gombak�SGR01�Selangor)rHrIrJNr8r>r"rr?rR�s/������+�+� ��'�Z�P�P� ���r"r?N)r9r:r;r<rrHr@rArIrJrrBrMrPr?r>r"rrErEys7�����������c�'9�a�H�H�H�D�#�H�H�H���c�'9�a�H�H�H�D�#�H�H�H��%���!�D�D�D�F�C�D�D�D��_�V�X�v�.�.����������[�/�.���_�V�����c��c�����[����  � � � � � � � � � r"rE)r<rr�typingr�pydanticrrrrO�compilerr rEr>r"r�<module>rYs�����$�#�#�#�#�#�#�#�������6�6�6�6�6�6�6�6�6�6� � � � ��r�z�>�?�?� �e �e �e �e �e �)�e �e �e �P$ �$ �$ �$ �$ �9�$ �$ �$ �$ �$ r"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/amanasmuei/mcp-server-malaysia-prayer-time'

If you have feedback or need assistance with the MCP directory API, please join our Discord server