julienmalard/Taqdir

View on GitHub
تقدیر/مقام.py

Summary

Maintainability
A
0 mins
Test Coverage
import datetime

from .ذرائع import مرکسم۵_جال, مرکسم۵, ناسا
from .ذریعہ import ذریعہ
from .کام import بلندی_پانا
from .کوائف import کوائف


class مقام(object):
    """
    ایک مقام، جس کے ليے آب وہوا کے کوائف درکار ہيں۔
    """

    def __init__(خود, عرض, طول, بلندی=None):
        خود.بلندی = بلندی if بلندی is not None else بلندی_پانا(عرض, طول)
        خود.طول = طول
        خود.عرض = عرض

    def کوائف_پانا(خود, سے, تک, ذرائع=None, خاکے='۸.۵'):
        """
        آبوہوا کے کوائف ليناا۔

        Parameters
        ----------
        سے: str | datetime.date
            وہ تاریخ جب سے کوائف چاہيں۔
        تک: str | datetime.date
            وہ تاریخ جب تک کوائف چاہيں۔
        ذرائع: ذریعہ | list
            وہ ذرائع جن سے کوائف لينےا ہيں۔ یا :class:`~تقدیر.ذریعہ.ذریعہ`، یا انکی فہرست ہو سکتی ہے۔
        خاکے: str | float
            آب وہوا کی تبدیلی کے خاکے۔مثال کے طور پر ۸۔۵

        Returns
        -------
        کوائف
            آب وہوا کے :class:`~تقدیر.کوائف.کوائف`۔

        """
        # ذرائع کی تیاری
        ذرائع = ذرائع_بنانا(ذرائع)
        متغیرات = {م for ذ in ذرائع for م in ذ.متغیرات}
        # ھر ذریعہ کے کوائف پانا
        اعداد = کوائف(None, سے, تک, متغیرات=متغیرات)
        for ذر in ذرائع:
            نئے = ذر.کوائف_پانا(سے, تک, خود.عرض, خود.طول, خود.بلندی, خاکے=خاکے)
            if نئے is not None:
                اعداد += نئے
            # رکنا اگر نامعلوم کچھ نہیں یے
            if اعداد.لاپتہ().size == 0:
                break

        return اعداد


def ذرائع_بنانا(ذرائع):
    # ذرائع کی تیاری
    ذرائع = ذرائع or []
    if isinstance(ذرائع, ذریعہ):
        ذرائع = [ذرائع]
    if isinstance(ذرائع, list):
        ذرائع = ذرائع + [ناسا(), مرکسم۵(), مرکسم۵_جال()]
    return ذرائع