تقدیر/مقام.py
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 ذرائع